CookieDetox Legal-Tech Observatory
Sanctions & Amendes 2026-08-09

Webflow & GDPR: Mastering Consent Mode v2 and Cookie Banners

CD

Par Cellule Investigation CookieDetox

Expertise Juridique & Conformité

🔗
T

L'essentiel à retenir (En bref)

For Webflow, GDPR compliance requires robust cookie banners and the integration of Google Consent Mode v2. This involves strict script blocking, fine-tuned consent management via GTM, and a rigorous technical audit to avoid CNIL penalties, thus ensuring ethical and legal data collection.

Audit & Compliance

The GDPR Imperative and the Webflow Ecosystem

In a digital landscape where personal data protection has become a cornerstone of legislation, compliance with the General Data Protection Regulation (GDPR) is no longer an option but an imperative. For no-code web development platforms like Webflow, this requirement translates into specific challenges, particularly concerning the management of cookies and trackers.

The ePrivacy Directive ↗ and the Legal Framework

The GDPR, complemented by the ePrivacy Directive (often referred to as the "cookie law"), imposes strict rules regarding obtaining user consent before placing or reading non-essential cookies. This includes analytical, advertising, personalization, and social media cookies. Consent must be freely given, specific, informed, and unambiguous. The absence of explicit opt-in consent for these cookie categories is a clear violation. Consent banners must offer granular choice, allow refusal as easily as acceptance, and not pre-check consent options.

Specific Challenges for Webflow

Webflow, by its nature as a visual builder, simplifies website creation but can complicate the technical integration of Consent Management Platform (CMP) solutions and conditional script blocking. Webflow users must ensure that third-party scripts (Google Analytics, Meta Pixel, Hotjar, etc.) only load after explicit consent. This often requires intervention at the Webflow Custom Code level, the use of Google Tag Manager (GTM), or the integration of a robust CMP capable of managing automatic script blocking.

Google Consent Mode v2: Architecture and Technical Implementation

Google Consent Mode v2 represents a major evolution in how consent signals are communicated to Google services, enabling conversion modeling even in the absence of full consent, while respecting user privacy. Its implementation is now crucial for maintaining the accuracy of analytical and advertising data, especially with the arrival of Google Analytics 4 (GA4) and the evolving requirements of the European Economic Area (EEA).

Fundamental Principles and New Parameters

Consent Mode v2 introduces two new consent parameters compared to v1: ad_user_data and ad_personalization, in addition to analytics_storage and ad_storage. These parameters indicate whether the user has consented to the use of their data for targeted advertising and ad personalization. Implementation should be done in "advanced" mode (Advanced Consent Mode), where Google tags load by default in a denied state, then dynamically adjust based on user consent. This ensures that no cookies are placed before consent.

Integration via Google Tag Manager (GTM)

Integrating Consent Mode v2 on Webflow is ideally done via Google Tag Manager. Here are the key steps:

  1. CMP Configuration: Integrate your CMP (e.g., Cookiebot, OneTrust, Didomi) with Webflow via Custom Code in the site settings (<head> or <body>). The CMP must initialize default consent states (denied for all non-essential categories).
  2. Consent Mode v2 Initialization in GTM: Use a "Consent Initialization" tag type in GTM. This tag must define default consent states before other tags fire.
  3. Updating Consent States: The CMP must send events to the data layer (dataLayer) of GTM to update consent states (gtag('consent', 'update', {...})) after the user interacts with the banner.
  4. Google Tag Configuration: Ensure all your Google tags (GA4, Google Ads) are configured to respect consent states via GTM's built-in consent settings.

Example GTM code for default initialization (to be placed before any other GTM script):

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'analytics_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'functionality_storage': 'denied',
    'personalization_storage': 'denied',
    'security_storage': 'granted',
    'wait_for_update': 500
  });
  gtag('set', 'ads_data_redaction', true);
  gtag('set', 'url_passthrough', true);
</script>

Strategies for Blocking Cookies and Third-Party Scripts

Preventive script blocking is the cornerstone of GDPR compliance. Without a robust blocking mechanism, even the best consent banner is ineffective.

Preventive Blocking (Hard Blocking)

Blocking must be performed before any non-essential script can execute or place cookies. For Webflow, this can be achieved in several ways:

  • Via a CMP: Modern CMPs offer automatic script scanning and blocking functionalities. They rewrite <script> tags to prevent them from loading before consent.
  • Via GTM: By configuring conditional triggers for each tag. Non-essential tags should only fire if the corresponding consent state is "granted."
  • Manual Blocking (for experts): Modify <script> tags directly in Webflow's code (via Custom Code) by adding attributes like data-cookieconsent="category" or type="text/plain" and a JavaScript script that rewrites the type to text/javascript after consent.

Example of JS DOM blocking (to be adapted based on the CMP or logic):

<script type="text/plain" data-cookiecategory="analytics">
  // Your Google Analytics code or other analytical script here
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-XXXXX-Y', 'auto');
  ga('send', 'pageview');
</script>

<script>
  // Script to activate scripts after consent
  function activateScripts(category) {
    document.querySelectorAll('script[data-cookiecategory="' + category + '"]').forEach(function(script) {
      script.type = 'text/javascript';
      // Re-execute the script if necessary, or load it dynamically
      var newScript = document.createElement('script');
      newScript.innerHTML = script.innerHTML;
      for (var i = 0; i < script.attributes.length; i++) {
        var attr = script.attributes[i];
        if (attr.name !== 'type' && attr.name !== 'data-cookiecategory') {
          newScript.setAttribute(attr.name, attr.value);
        }
      }
      script.parentNode.replaceChild(newScript, script);
    });
  }
  // Example call after a consent event for 'analytics'
  // if (userConsent.analytics) { activateScripts('analytics'); }
</script>

Consent Management and Triggers

The CMP must record user consent in a traceable manner (proof of consent). This "consent receipt" must include the timestamp, user identity (if applicable), accepted/denied cookie categories, and the privacy policy version. This receipt is crucial in case of an audit.

Example JSON structure for a consent receipt:

{
  "consent_id": "uuid-v4-example-12345",
  "timestamp": "2024-07-26T14:30:00Z",
  "user_id": "user-hashed-id-abc",
  "consent_version": "1.2",
  "policy_version": "2.1",
  "consents": {
    "analytics": "granted",
    "marketing": "denied",
    "preferences": "granted",
    "essential": "granted"
  },
  "source": "webflow-site.com",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
}

Compliance Audit and CNIL Jurisprudence

A regular audit is essential to ensure that the consent solution remains compliant with legislative changes and the practices of supervisory authorities.

Technical Audit Methodology

The audit must cover several aspects:

  1. Banner Verification: Is it visible? Does it offer granular choice? Is refusal as simple as acceptance? No pre-checked options?
  2. Script Blocking Test:
    • Open your browser's developer tools (DevTools) (F12).
    • Go to the "Application" tab > "Cookies" and "Local Storage."
    • Load the page without interacting with the banner. No non-essential cookies should be present.
    • Go to the "Network" tab. Filter by "Doc" or "XHR." No calls to third-party services (GA, Meta, etc.) should be made before consent.
    • Accept cookies. Verify that cookies and network calls appear.
    • Refuse cookies. Verify that no non-essential cookies are placed and no calls are made.
  3. Consent Mode v2 Verification:
    • In DevTools, "Network" tab, filter by collect or gcs.
    • Look for requests sent to Google. The gcs parameter (Google Consent State) should reflect the consent state. For example, gcs=G100 for total denial, gcs=G111 for total consent.
    • Use the "Tag Assistant Companion" extension to verify consent signals sent to GTM and GA4.
  4. Proof of Consent: Verify that the CMP correctly records user choices.

Analysis of CNIL Sanctions and Lessons Learned

The CNIL has imposed substantial fines for non-compliance with cookie rules. Analyzing these cases offers valuable lessons:

CompanyDateAmountMain Reason
Google (Google LLC & Google Ireland Ltd.)Dec. 2020 / Jan. 2022€100 M / €150 MPlacement of cookies without prior consent, difficulty in refusing cookies.
Amazon Europe CoreDec. 2020€35 MPlacement of cookies without prior consent.
Meta Platforms Ireland Ltd. (Facebook, Instagram)Dec. 2021 / Jan. 2022€60 M / €17 MDifficulty in refusing cookies, complex user journey for refusal.
CriteoJune 2023€40 MFailure to comply with obligations for obtaining consent, providing information, and respecting the right of access.

These cases highlight the critical importance of:

By adopting a rigorous approach and leveraging the tools and methodologies described, Webflow users can not only comply with GDPR and ePrivacy requirements but also strengthen user trust and sustain their data collection strategies within a legal and ethical framework.

§

Official Legal Sources & Authoritative Decisions

Primary statutory texts, official DPA rulings, and European court judgments referenced in this analysis.

Updated 2026-08-09
Share this article:

Frequently Asked Questions (FAQ)

Why is Google Consent Mode v2 crucial for Webflow in 2024?

Google Consent Mode v2 is crucial because it allows maintaining the accuracy of analytical and advertising data (especially for GA4 and Google Ads) while respecting GDPR. Without it, Webflow sites risk a significant loss of conversion and audience data, impacting the effectiveness of marketing campaigns and legal compliance, especially within the EEA.

How to implement a GDPR-compliant cookie banner on Webflow without coding?

To implement a GDPR-compliant cookie banner on Webflow without coding, use a third-party Consent Management Platform (CMP) like Cookiebot, OneTrust, or Didomi. These CMPs provide a script to integrate into Webflow's Custom Code ( or section) and automatically manage the banner, script blocking, and Consent Mode v2 integration.

What are the risks of GDPR non-compliance for a Webflow site?

The risks of GDPR non-compliance for a Webflow site include substantial fines from the CNIL (up to 4% of global turnover or 20 million euros), damage to reputation, loss of user trust, legal actions, and the prohibition of processing certain data, which can paralyze marketing and analytical operations.

How to check if my Webflow site correctly blocks cookies before consent?

To check blocking, open your browser's developer tools (F12). In the 'Application' tab, verify the absence of non-essential cookies and data in 'Local Storage' before interacting with the banner. In the 'Network' tab, ensure that no calls to third-party services (Google Analytics, Meta Pixel) are made before the user has given explicit consent.