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.
- Open your published site in a private (incognito) window, open developer tools (F12), go to Network and filter by
facebook.com/tr. - Accept cookies.
- In each request’s payload,
idis the pixel ID andevis the event name. Two requests with the sameidand sameevat almost the same moment are a duplicate. Differentidvalues mean two different pixels, which may be intended (for example an agency pixel and a client pixel). - Look for
a=plwebflowin 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. - 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
- Check every place a Webflow site can load the pixel. Search the published page source for
fbevents.jsandfbq('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.
- 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.jsrequests for two different container IDs that both contain a Meta tag, every event is sent twice. - Keep one installation, remove the rest. Deleting only the
fbq('track', ...)lines is not enough iffbq('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.
- 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.
- 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
Leadfrom one place only: when the form is submitted, or on the thank-you page, not both. Also check for a GTMLeadtag and aLeadsnippet in the page’s custom code firing for the same form. - 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
Leadevent 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
- 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.
- Re-run the check on IsPixelWorking. The issue should be gone.
Sources
- Webflow Help, Embed Meta Pixel on your Webflow site (remove custom code before adding the Pixel ID; ecommerce events sent automatically; base code not needed with the integration): https://help.webflow.com/hc/en-us/articles/33961406577171-Embed-Meta-Pixel-on-your-Webflow-site
- Webflow Help, Custom code in head and body tags: https://help.webflow.com/hc/en-us/articles/33961357265299-Custom-code-in-head-and-body-tags
- Webflow Help, Custom code embed (reuse embeds as components): https://help.webflow.com/hc/en-us/articles/33961332238611-Custom-code-embed
- Webflow Help, Custom code in the CMS: https://help.webflow.com/hc/en-us/articles/33961236623635-Custom-code-in-the-CMS
- Webflow Help, Localize page settings (custom code per locale): https://help.webflow.com/hc/en-us/articles/33961235760531-Localize-page-settings
- Webflow Help, Connect Google site tools to your Webflow site (adds a Tag Manager container): https://help.webflow.com/hc/en-us/articles/33961193954835-Connect-Google-site-tools-to-your-Webflow-site
- Webflow Help, How do I add forms in Webflow? (Success state, redirect after submission): https://help.webflow.com/hc/en-us/articles/33961347548563-How-do-I-add-forms-in-Webflow
- Webflow Developers, Working with custom code (scripts added by Apps): https://developers.webflow.com/data/docs/working-with-custom-code
- Meta for Developers, Meta Ads Data Advisor (formerly Meta Pixel Helper; “Duplicate Pixel code”): https://developers.facebook.com/docs/meta-pixel/support/pixel-helper
- Meta Business Help Center, About Meta Ads Data Advisor: https://www.facebook.com/business/help/198406697184603
- Meta Business Help Center, Test events tool: verify app and web browser events for Meta: https://www.facebook.com/business/help/2040882565969969
- Meta for Developers, Handling duplicate Pixel and Conversions API events: https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events
- IsPixelWorking live test, 2026-10-04: on published Webflow sites with the built-in Meta Pixel integration, Webflow’s pixel code set
n.agent='plwebflow', and the pixel’s requests carrieda=plwebflow.