Fix guide · Webflow · medium · about 30 min
Facebook click ID (fbclid) lost on Webflow
For the finding “Click ID from Meta ads is not stored”. Also for: Any website, Shopify, WordPress, Framer.
What this means
When someone clicks a Meta ad, Meta adds ?fbclid=... to the link. The Meta Pixel (still often called the Facebook Pixel) on your Webflow site should save it in the first-party cookie _fbc, so later events (a form submission, a purchase) can be tied back to the ad click. On your site, the click ID did not end up in _fbc.
Why it costs you money:
- Meta has a weaker link between ad clicks and conversions, which lowers event match quality and can lower reported results.
- Campaigns optimize on less complete data, so you may pay more per result.
- If you send server events through the Conversions API, they usually rely on the same
_fbcvalue, so they lose it too.
How to confirm it yourself
Our check opens your page in a browser in the EU as if arriving from a Meta ad, with a test click ID in the URL, accepts the cookie banner and looks for _fbc. If our report shows a redirect chain, start there: it often shows exactly where the click ID was dropped.
- Open a private (incognito) window, open developer tools (F12) on Network, and tick Preserve log.
- Open the exact URL your ads use, with a made-up click ID added:
https://yourdomain.com/landing?fbclid=test123. (This sends a normal page view to your own pixel. It does not create an ad click.) - If the first request is a redirect (
301,302,307,308), check its Location header. Does the new address still contain?fbclid=test123? - Accept the cookie banner, wait a few seconds, then go to Application > Cookies (Chrome) or Storage > Cookies (Firefox) and look for
_fbc. It should look likefb.1.<timestamp>.test123. You should also see_fbp, the pixel’s browser ID.
How to fix
Work through the chain: the link must arrive with fbclid, the pixel must run on that page, and it must be allowed to write cookies.
- Point your ads at the final address. Webflow redirects your other connected domains (for example the version without
www) to the default domain, set in Site settings > Publishing > Production with Make default. In our tests on Webflow-hosted sites, Webflow also redirectedhttptohttpsand removed a trailing slash from page addresses, and all of these redirects kept the query string, includingfbclid. Still use the exact final address in every ad (default domain,https, no trailing slash), so the visitor lands without a redirect. - Do not send ads through Webflow 301 redirects. In our tests, redirect rules from Site settings > Publishing > 301 redirects sent visitors to the new address without the query string, so
?fbclid=...was lost before the pixel could run. This includes the redirect Webflow creates when you change a page’s slug and tick Permanently redirect the old URL to this new one. Check every ad URL against your redirect list, and update ads to link to the new page directly. Test with?fbclid=test123as described above after any change. - Check localized pages. Webflow’s 301 redirects do not apply to localized subdirectories, so
/es/old-urlneeds its own rule. The automatic routing to a visitor’s preferred locale (on Localize plans that include it) uses a302redirect; in our test it kept the query string, but link ads for a given language to that locale’s URL anyway. - Check redirects outside Webflow, such as a domain registrar’s forwarding, rules in a proxy or CDN in front of the site, link shorteners or campaign link tools. These commonly drop the query string.
- Check scripts that clean the address bar. A script that removes query parameters after the page loads (for example Finsweet’s removequery Attribute, or custom “clean URL” code) can erase
fbclidbefore a consent-gated pixel starts. Remove it from landing pages, or make sure it runs only after the pixel has loaded. - Make sure the pixel runs on the landing page after consent.
_fbcis written by the pixel. If it only starts on the next page,fbclidis no longer in the address. With Webflow’s built-in integration and Delay for cookie consent, something must callfbq('consent', 'grant')right after Accept on the same page; with GTM, the Meta tag must fire on the consent event, not only on the next page view. See “Meta Pixel not firing after cookie consent on Webflow”. - Check that first-party cookies are on. In Meta Events Manager, open Data sources, select your pixel and open Settings. Under Cookie settings, Cookie usage shows whether first-party cookies are on (the default). If they were turned off, click Edit, turn First-party cookies on and save.
- Check that your consent tool keeps the cookie. After Accept,
_fbcshould stay, including on the next page. Some tools delete cookies when the visitor changes preferences; Finsweet’s older Cookie Consent documents that it erases cookies and re-runs scripts in that case. - Publish to your custom domain after any change.
Common causes
- Ads link to an old URL that Webflow now 301-redirects (often after a slug change), and the redirect drops the query string.
- A registrar forwarding rule, proxy rule or link shortener in front of the site drops
fbclid. - A script removes query parameters from the address before the pixel starts.
- The pixel waits for consent and only starts on the next page.
- First-party cookies are disabled for the pixel.
How to verify the fix
- Repeat the test above using the exact ad URL: no redirect drops
?fbclid=test123, and after accepting cookies_fbcends withtest123. - Open another page of the site:
_fbcis still there. - Re-run the check on IsPixelWorking. The issue should be gone, and the redirect chain in the report (if any) should keep the click ID.
Sources
- Meta for Developers,
fbpandfbcparameters (cookie format, pixel stores the click ID in_fbc, 90-day lifetime): https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc - Meta Business Help Center, Check your Meta Pixel cookie settings: https://www.facebook.com/business/help/560982207646475
- Meta Business Help Center, About cookie settings for the Meta Pixel: https://www.facebook.com/business/help/471978536642445
- Webflow Help, How do I set up redirects in Webflow? (Site settings > Publishing > 301 redirects, slug-change redirects, localized subdirectories): https://help.webflow.com/hc/en-us/articles/33961294898835-How-do-I-set-up-redirects-in-Webflow
- Webflow Help, Set a default domain (Site settings > Publishing > Production, Make default): https://help.webflow.com/hc/en-us/articles/33961339571475-Set-a-default-domain
- Webflow Help, Localized SEO and locale routing (locale routing uses 302 redirects): https://help.webflow.com/hc/en-us/articles/33961235675155-Localized-SEO-and-locale-routing
- Webflow Help, Embed Meta Pixel on your Webflow site (“Delay for cookie consent”): https://help.webflow.com/hc/en-us/articles/33961406577171-Embed-Meta-Pixel-on-your-Webflow-site
- Finsweet Attributes, removequery (“Remove the URL query parameters from the URL after the page loads”): https://github.com/finsweet/attributes/tree/master/packages/removequery
- Finsweet Cookie Consent README (cookies erased when preferences change): https://cdn.jsdelivr.net/npm/@finsweet/cookie-consent@1/README.md
- IsPixelWorking live test, 2026-10-04 (responses served by Webflow hosting): on Webflow-hosted sites, non-default domain to default domain (
301),http://tohttps://(301) and/page/to/page(301) kept?fbclid=test123; Webflow locale routing (302to/deand/fr) kept it; custom 301 redirect rules on several sites (for example/team?fbclid=test123to/about-us) dropped the query string.