Skip to main content

🚫 Duplicate OTTO Pixel: How to Find, Fix, and Prevent Multiple Installations

A step-by-step, platform-by-platform playbook to resolve double (or triple) OTTO Pixel installs and get OTTO back online fast.

Updated this week

Installing the OTTO Pixel is the first step to unlocking AI-powered SEO automation — but when it’s installed more than once, OTTO may:

  • Show “Duplicate Installation Detected” in Diagnostics

  • Fail to fully enable

  • Misread page state or slow down verification

The tricky part: you might not realize it’s installed twice (the plugin, GTM, theme code, etc.).

This guide explains exactly how to confirm, fix, and prevent duplicates across WordPress, Shopify, Wix, GTM, GoHighLevel, Webflow, Squarespace, custom sites, and more.

🔎 TL;DR — What “duplicate pixel” really means

OTTO has detected multiple instances of the OTTO Pixel loading on your site.
Typically:

  • WordPress plugin + GTM + manual <script>

  • Script injected on multiple templates or pages

  • Apps, CDNs, or minifiers re-injecting the same script

OTTO needs one clean installation path and one UUID per project.

🧭 Quick path: How to confirm you have a duplicate

  1. Use both of these methods:

    1) Check the live HTML manually

    1. Open your homepage in a browser (the same domain you configured in Search Atlas).

    2. Right-click → View Page Source.

    3. Press Ctrl+F (Windows) / Cmd+F (Mac) and search for:

      sa-dynamic-optimization searchatlas data-uuid
    4. Count how many times the OTTO script appears:

      • If you see two or more script blocks with the OTTO src/UUID →, you definitely have duplicates.

      • If you only see one, it may still be duplicated via GTM or apps → continue with method 2.

    2) Confirm via OTTO Diagnostic (recommended)

    1. Go to Search Atlas → AI SEO → All Sites.

    2. Click on your site to open the OTTO SEO Automation dashboard.

    3. Click Scan → Run Diagnostics.

      OTTO will begin scanning your site for the installed Pixel.

      During this stage, you’ll see the message:

      Running Diagnostics…


      We’re checking the selected page for any OTTO implementation issues.
      This might take a few seconds — hang tight!

      A detailed report will be ready shortly.”


      Wait for the diagnostic to complete, then scroll through the results.

      If OTTO sees multiple instances, you’ll see a message like:

      • “Duplicate Installation Detected”


    If you see that status, you can be sure OTTO is detecting more than one Pixel, and you should go ahead with the platform-specific fix.

🧰 Universal Fix Checklist (do this before you dive into platform specifics)

Goal: keep one install method, remove everything else.

  1. Choose ONE source of truth

    • WordPress plugin or

    • GTM or

    • Manual <head> script or

    • CMS global “Custom Code / Code Injection” or

    • GHL Global Section

    Never mix methods (e.g., plugin + GTM + manual script).

  2. Remove all other copies of the OTTO script

    • Delete extra <script> tags from theme files, page builders, embeds, or extra sections.

    • Remove GTM tags that inject OTTO if the plugin is your source.

    • Remove plugin / app embeds if GTM or manual script is the source.

  3. Clear caches everywhere

    • Browser: hard reload (Ctrl+Shift+R / Cmd+Shift+R) or open in Incognito.

    • WordPress cache (via Search Atlas plugin):

      • WordPress → Search Atlas → Settings → Settings dropdown → Advanced → Error Logs → Clear All Cache Plugins.

    • Cache plugins / host: click “Purge / Clear All Cache” in WP Rocket, LiteSpeed, W3TC, host panel, etc.

    • CDN / WAF: e.g. Cloudflare → Caching → Purge Everything.

    • CMS publish: Shopify/Wix/Webflow/Squarespace → Save + Publish / Publish to domains.

  4. Force OTTO to re-check

    • Search Atlas → AI SEO → All Sites → Select your site → Scan → Run Diagnostics.

    • Wait 3–5 minutes and refresh.

If the duplicate is fully resolved, the diagnostic will stop showing the “Duplicate Installation Detected” message.

🖥️ Platform-by-Platform Fix Playbooks

🟩 WordPress (Plugin vs GTM vs manual script)

Most common root causes

  • OTTO installed via the Search Atlas plugin and via GTM or theme/header code.

  • Script added in header.php or functions.php plus plugin injection.

  • Staging → production migration that left old code and the plugin active.

  • Cache/minification plugins cloning or delaying the script.

How to fix (plugin as source of truth — recommended)

  1. Keep the Search Atlas WordPress plugin as the only OTTO source.

  2. Remove any OTTO scripts from:

    • GTM tags

    • header.php, functions.php, or other theme files

  3. In WordPress → Search Atlas → Settings:

    • Ensure Authentication Successful.

    • API Key, Plugin Auth Token, and OTTO Pixel UUID are populated.

    • Enable OTTO is toggled on.

  4. Clear cache via:
    Search Atlas → Settings → Settings dropdown → Advanced → Error Logs → Clear All Cache Plugins.

If GTM is your source of truth instead

  1. In WordPress, disable OTTO features in the plugin or disconnect Pixel injection.

  2. Remove any manual OTTO scripts from theme files.

  3. In GTM:

    • Use one Custom HTML tag with the OTTO script.

    • Trigger: All Pages or Initialization – All Pages.

    • Advanced Settings: fire Once per page.

  4. Publish the container.

  5. Re-run OTTO Diagnostics.

🟨 Google Tag Manager (GTM)

Common root causes

  • Two GTM containers installed simultaneously.

  • OTTO script both in GTM and hard-coded in the theme.

  • Event-based firing or multiple triggers causing repeated loads.

How to fix

  1. View Source → search for googletagmanager.com/gtm.js?id= and confirm only one container ID.

  2. In GTM:

    • Use one Custom HTML tag for OTTO.

    • Trigger: All Pages (or Initialization – All Pages).

    • Advanced Settings → “Once per page”.

  3. Remove any OTTO scripts hard-coded into templates.

  4. Publish your GTM container.

  5. Re-run OTTO Diagnostics and verify “Duplicate Installation” is gone.

🟦 GoHighLevel (GHL / Ideation)

Common root causes

  • Script added in a non-global section on multiple pages.

  • Script added inside several funnel steps or duplicated sites.

  • Fixing “Pixel not detected” by pasting the script everywhere instead of using a single Global Section.

How to fix

  1. Remove OTTO code from individual pages and funnel steps.

  2. Use one Custom Code element inside a Global Section in the header layout area (per the GHL OTTO guide).

  3. Save and confirmApply to Global Section” in the modal.

  4. Publish your changes.

  5. Rerun Diagnostics.

🟪 Wix (Editor & Studio)

Common root causes

  • Script applied only to a single page.

  • Script duplicated via Velo or custom masterPage.js.

  • Script in Custom Code + another copy inside a global section.

How to fix

  1. Go to Settings → Custom Code → + Add Custom Code.

  2. Paste your OTTO script:

    • Apply to: All Pages

    • Load code on: Each Page Load

    • Place code in: Head

  3. Remove all other instances:

    • Page-level custom code

    • Velo injection

    • Global sections are duplicating the script

  4. Publish the site.

  5. Rerun Diagnostics.

🟥 Shopify

Common root causes

  • Script added in theme.liquid + via app embeds or another app.

  • Script added in multiple layout or section files.

  • The old theme still contains the Pixel, while the new one does as well.

How to fix

  1. Shopify Admin → Online Store → Themes → Edit code.

  2. Open layout/theme.liquid.

  3. Search for your OTTO script/UUID.

  4. Keep one script just above </head>.

  5. Search the rest of your theme for duplicates (sections, snippets, app blocks).

  6. Remove all extras.

  7. Save, publish, and rerun Diagnostics.

🟫 Webflow, Squarespace, Blocs, “Custom Site”, etc.

Common root causes

  • Script added in multiple places:

    • Site Settings → Custom Code → Head

    • Page Settings → Custom Code

    • Embed elements

  • Certain builders misbehave when the script is literally the very first tag in <head>.

How to fix

  1. Keep one global installation only:

    • Webflow: Site Settings → Custom Code → Head Code.

    • Squarespace: Settings → Advanced → Code Injection → Header.

    • Custom: one global layout file <head>.

  2. Remove all page-level or block-level OTTO scripts.

  3. If a builder is sensitive, move the script a few lines down in <head> (after a meta or charset tag).

  4. Publish the site.

  5. Rerun Diagnostics.

🧩 Edge cases you should also rule out

  • Staging and Production are both live and being crawled.

  • Multiple domains share the same codebase, each of which fires the Pixel.

  • Consent managers are injecting a second script after acceptance.

  • CDNs that “bundle” JS and end up duplicating code.

  • Two OTTO projects configured for the same domain (rare, but worth checking if nothing else explains it).

✅ Post-fix: How do you know you’re clean

  1. Use these three checks:

    1) DevTools → Network

    • Open browser DevTools → Network tab.

    • Reload the page.

    • Filter by your OTTO script URL or “searchatlas”.

    • You should see only one request.

    2) View Source / Elements

    • Only one <script id="sa-dynamic-optimization" ... data-uuid="YOUR-UUID"> in the HTML.

    3) OTTO Diagnostic in Search Atlas

    • AI SEO → All Sites → Select site → Scan → Run Diagnostics

    • Results should now show:

      • ✅ Correct Installation (JS detected)

      • ✅ No duplicate installation detected

      • ✅ Fixes deployed / OTTO Enabled

    If Diagnostics still says “Duplicate Installation Detected”, you still have more than one script source somewhere.

🛡️ Preventing duplicates (governance you can copy-paste into your internal SOPs)

  1. Define a single “source of truth” for third-party scripts (e.g., “All tracking goes via GTM only” or “OTTO always via plugin only”).

  1. Maintain a simple script registry: who added what, where, and why.

  2. Lock GTM publishing or require approvals for changes in <head> templates.

  3. Comment manual blocks with something like:
    <!-- DO NOT DUPLICATE — OTTO Pixel lives here -->

  4. Add a QA step in every release:

    • DevTools → Network → confirm only one OTTO request

    • Run OTTO Diagnostic once after significant changes to the theme/structure.

A properly installed, single instance of the OTTO Pixel ensures your site is ready for automation. It unlocks accurate scanning, activates your Knowledge Graph, and enables OTTO to do what it’s best at—finding and fixing SEO problems in real time.

By following this guide, you’ll avoid the most common missteps we see across our support team and community. Whether you’re using GTM, a plugin, or manual code, remember: one method, one place, one clean load.

Still seeing issues? Run the OTTO Diagnostic, check your browser’s DevTools, and if needed, reach out with a link to your site and a screenshot of your script setup — we’re here to make sure your setup is clean, compliant, and ready for scale.

Welcome to smarter SEO.

Did this answer your question?