🔍 Overview
When connecting OTTO SEO to a GoHighLevel (GHL) website, some customers encounter a duplicate pixel warning even though only one OTTO script appears visible in the page source. This article explains why this happens, how to install OTTO correctly on GHL, and how to ensure full coverage across your blog, category, and post pages.
⚙️ Why OTTO Detects a Duplicate on GoHighLevel
GoHighLevel injects scripts in two separate locations during page rendering:
- The GHL funnel/site builder header scripts — scripts you add manually inside the GHL platform settings.
- The GHL blog engine header — a separate rendering layer that powers blog listing pages, category pages, and individual post pages. This layer loads its own script block independently.
If you add the OTTO pixel to your site-wide header in GHL, the blog engine may also load it as part of its own template, resulting in two instances of the OTTO script firing on blog-related pages. The Search Atlas scanner detects both instances and flags the installation as a duplicate — even if you only see one script tag when inspecting the page manually. This is because browser dev tools often show the merged, rendered DOM rather than each injection source separately.
✅ The Supported Installation Method for GoHighLevel
Follow these steps to install OTTO correctly on a GoHighLevel site and avoid duplicates:
- In Search Atlas, go to OTTO SEO → All Sites (SEO Automation Projects) using the left sidebar (or navigate to /seo-automation-v3).
- Select your GoHighLevel website and copy your unique OTTO pixel script.
- Log in to your GoHighLevel account and open the Sites section.
- Go to Settings → Custom Code (also called Header/Footer Scripts depending on your GHL version).
- Paste the OTTO pixel script once in the Header field at the site level — do not add it again inside individual funnel steps, blog settings, or page-level script fields.
- Save your changes and publish the site.
Important: Do not add the OTTO pixel inside the GHL blog settings separately. The site-level header script will propagate to all pages including blog pages when configured correctly. Adding it in both locations is the primary cause of duplicate detection.
📄 Covering Blog, Category, and Post Pages
A common concern is whether OTTO will activate on GoHighLevel blog listing pages, category pages, and individual post pages — not just the main site pages. Here is what you need to know:
- Blog listing and category pages: These are covered by the site-level OTTO pixel as long as you follow the single-installation method above. No additional script is needed.
- Individual blog post pages: GHL renders these through its blog engine. The site-level header script covers them provided the pixel is placed in the correct site-wide header field and not duplicated in blog-specific settings.
- Funnels vs. websites: If your blog lives on a GHL website (not a funnel), use the website-level Custom Code field. If your blog is part of a funnel, use the funnel-level header script field instead — but again, only once per property.
If your OTTO dashboard still shows blog pages as undetected after 24 hours, try clearing your GHL site cache and republishing. The Search Atlas crawler re-checks detection status periodically, and blog pages may take one additional crawl cycle to confirm activation.
🚫 Common Mistakes to Avoid
- Adding the script in multiple places: Site header and blog settings, or site header and individual page headers — this always causes duplicates.
- Using a third-party tag manager alongside a direct paste: If you are deploying OTTO through Google Tag Manager on GHL, do not also paste the pixel directly in GHL's Custom Code field.
- Assuming the browser inspector shows all instances: The rendered DOM view can merge script sources. A duplicate flag from the Search Atlas scanner is reliable — trust it over a manual browser check.
🔄 After Installation — Verifying Detection
- Return to OTTO SEO → All Sites (SEO Automation Projects) in Search Atlas (/seo-automation-v3).
- Open your site and check the detection status. Allow up to 24 hours for the crawler to confirm the pixel is active and no duplicate is present.
- If a duplicate warning persists after following the steps above, review every location in GHL where scripts can be injected (site header, blog settings, individual page headers, and any connected funnels) and remove any extra instances of the OTTO pixel.
💬 Need More Help?
If you need further assistance, open the chat widget in the bottom-right corner of the platform and type human teammate to be connected with a member of our team.