Fix guide · Webflow · easy · about 20 min

Duplicate Meta Pixel events on Webflow

For the finding “Duplicate Meta events”. Also for: Any website, Shopify, WordPress, Framer.

What this means

The same event (for example PageView or Lead) was sent twice for the same pixel ID within about a second, or the same pixel was set up twice on the page. Webflow offers several places to add the Meta Pixel (still often called the Facebook Pixel), so this nearly always means it is installed in two of them.

Why it costs you money:

  • Meta counts some conversions twice (double-counting), so your reports look better than reality and your cost per result looks lower than it is.
  • Meta’s optimization learns from inflated data and may spend budget on the wrong people.

This is about two identical browser events. A browser event plus a server (Conversions API) event for the same action is expected; Meta merges those when they share an event ID (see “Meta Pixel events have no event ID on Webflow”).

How to confirm it yourself

Our check runs from a browser in the EU and accepts the cookie banner before looking for duplicates.

  1. Open your published site in a private (incognito) window, open developer tools (F12), go to Network and filter by facebook.com/tr.
  2. Accept cookies.
  3. In each request’s payload, id is the pixel ID and ev is the event name. Two requests with the same id and same ev at almost the same moment are a duplicate. Different id values mean two different pixels, which may be intended (for example an agency pixel and a client pixel).
  4. Look for a=plwebflow in the payload. Webflow’s built-in Meta Pixel integration marks its requests this way. If one of the two identical requests has it and the other does not, the second copy comes from custom code, an embed, GTM or an App.
  5. Submit a test form and check that Lead (or your form event) appears once.

Meta Ads Data Advisor (Meta’s Chrome extension, formerly Meta Pixel Helper) reports “Duplicate Pixel code” as a common setup error, and the Test events tool in Meta Events Manager will show the event twice.

How to fix

  1. Check every place a Webflow site can load the pixel. Search the published page source for fbevents.js and fbq('init', then check:
    • Site settings > Apps & Integrations > Meta Pixel (the integrations tab). Webflow’s own help says to remove any pixel custom code before entering a Pixel ID here. If you followed Webflow’s guide to event tracking, you also do not need the base code part of Meta’s example code when the Pixel ID is set here.
    • Site settings > Custom code: Head code, Footer code and code added by installed Apps.
    • Page settings > Custom code of individual pages and CMS template pages. With Webflow Localization, check each locale: page code can differ per locale.
    • Code Embed elements, especially inside components used on every page (a navbar or footer), and code blocks in Rich text or CMS items.
    • Your Google Tag Manager container: Meta Pixel tags and Custom HTML tags containing fbq.
    • Apps or Conversions API tools that install their own browser pixel.
  2. Check that GTM is installed only once. GTM can be added as a snippet in Head code or by the Google site tools for Webflow App, which connects a Tag Manager container for you. If both are present, or you see gtm.js requests for two different container IDs that both contain a Meta tag, every event is sent twice.
  3. Keep one installation, remove the rest. Deleting only the fbq('track', ...) lines is not enough if fbq('init', ...) is still there twice. Choose one:
    • The built-in integration if you only need the base pixel (and, with Webflow Ecommerce, its automatic shop events). Remove the base code everywhere else.
    • Custom code or GTM if you need your consent tool’s script blocking, custom events or event IDs. Clear the Pixel ID in Apps & Integrations and remove other copies.
    • A Conversions API tool that runs its own browser pixel (so it can share event IDs between browser and server). Remove the manual base code and the integration’s Pixel ID.
  4. Check ecommerce events. With Webflow Ecommerce and the built-in integration, Webflow sends product view, add to cart and purchase events to Meta automatically. If GTM or custom code sends the same shop events again, they are counted twice. Keep one source.
  5. Check form events. A Webflow form either shows its Success message on the same page or redirects to a page you choose (form Settings panel). Send Lead from one place only: when the form is submitted, or on the thank-you page, not both. Also check for a GTM Lead tag and a Lead snippet in the page’s custom code firing for the same form.
  6. Publish the site to your custom domain (and publish GTM if you changed it).

Common causes

  • A Pixel ID in Apps & Integrations > Meta Pixel and Meta’s base code in Head code (or in GTM).
  • Base code in both Site settings and a page’s custom code, or in a Code Embed inside a component on every page.
  • GTM added by the Google site tools App and also pasted into Head code, or two containers that both include a Meta tag.
  • Ecommerce events sent by Webflow’s integration and again by GTM or custom code.
  • A Lead event on form submission and another on the thank-you page.
  • A template or cloned project came with a pixel already in its custom code or embeds.

How to verify the fix

  1. In a private window on the published site, accept cookies and check that each event appears once per pixel ID: on page load, after a test form submission, and on any shop pages.
  2. Re-run the check on IsPixelWorking. The issue should be gone.

Sources