TLDR: We tested 15 WordPress consent plugins. Half broke Core Web Vitals. Three didn't actually block cookies before consent. Only four properly implemented Consent Mode v2. Here's which ones to use and which to avoid.
Read full summary
Comparative review of WordPress cookie consent plugins: features, Consent Mode v2 support, performance impact, and pricing. Includes configuration guides for the top solutions and common pitfalls to avoid.
*Summary by Claude AI*
## The WordPress Plugin That Looked Compliant
A WooCommerce store owner installed a popular free consent plugin—200,000+ active installations, 4.5-star rating. The banner appeared. Users could accept or reject. Everything seemed fine.
Six months later, a customer filed a GDPR complaint. During the investigation, the store owner discovered their "consent plugin" had never actually blocked cookies. The banner was cosmetic. Google Analytics, Facebook Pixel, and their email marketing integration had been firing on page load for every visitor, regardless of consent choice.
The plugin technically "worked"—it just didn't do what compliance requires. This scenario plays out constantly. Many WordPress consent plugins display banners without implementing proper consent-gating. They satisfy the visual requirement while completely missing the technical one.
---
title: "Best WordPress Cookie Consent Plugins 2025: Complete Comparison and Setup Guide"
slug: "wordpress-cookie-consent-plugins-2025"
excerpt: "In-depth comparison of the top WordPress cookie consent plugins for 2025. Performance benchmarks, Google Consent Mode v2 support, GDPR/CCPA compliance features, and step-by-step setup guides for each solution."
category: "Platform Guides"
tags: ["WordPress", "Cookie Consent", "GDPR", "Google Consent Mode", "WooCommerce", "Performance", "Plugin Comparison"]
publishedAt: "2025-01-18"
readTime: "22 min read"
---
## What is the best cookie consent plugin for WordPress in 2025?
Based on our comprehensive testing, **GetCookies for WordPress** scores highest (9.2/10) for its native Google Consent Mode v2 support, minimal performance impact (38ms), and seamless WooCommerce integration. **Complianz** (8.5/10) offers excellent value for budget-conscious users, while **CookieYes** (8.3/10) excels at automatic cookie scanning. Your best choice depends on your specific needs: compliance requirements, budget, and technical complexity.
## Introduction
With 43% of all websites running on WordPress, cookie consent is a massive concern for the platform's users. The stakes have never been higher: Google now requires Consent Mode v2 for EU advertisers, privacy regulations are being enforced more aggressively than ever, and users increasingly expect seamless privacy experiences.
We've tested dozens of WordPress cookie consent plugins over the years, and the landscape has changed dramatically in 2025. Plugins that were leaders two years ago have fallen behind on critical features like Consent Mode v2, while newer entrants have raised the bar on performance and compliance.
This guide presents the results of our testing across 15 popular cookie consent plugins. We evaluated each on compliance features, performance impact, ease of use, pricing, and Google Consent Mode v2 implementation. Whether you're running a simple blog or a high-traffic WooCommerce store, you'll find the right solution here.
## Testing Methodology
We tested each plugin using a standardized approach:
### Test Environment
- Fresh WordPress 6.5 installation
- Twenty Twenty-Four theme (default)
- WooCommerce 8.5 installed
- Google Analytics 4 + Google Ads configured
- Tested on Bluehost shared hosting and WP Engine managed hosting
### Metrics Evaluated
| Category | Weight | Metrics Measured |
|----------|--------|------------------|
| Compliance Features | 25% | GDPR, CCPA, ePrivacy support; consent record storage |
| Google Consent Mode v2 | 20% | Implementation completeness, ad_user_data, ad_personalization |
| Performance | 20% | Page load impact, Core Web Vitals scores |
| Ease of Use | 15% | Setup time, configuration complexity, documentation |
| Cookie Detection | 10% | Accuracy of automatic scanning, database coverage |
| Value for Money | 10% | Features per dollar, free tier limitations |
## Top 5 Cookie Consent Plugins Compared
### Quick Comparison Table
| Plugin | Score | GCM v2 | Performance | Free Tier | Starting Price |
|--------|-------|--------|-------------|-----------|----------------|
| GetCookies | 9.2/10 | Full Native | 38ms | Limited | $79/year |
| Complianz | 8.5/10 | Full Native | 52ms | Good | $45/year |
| CookieYes | 8.3/10 | Full Native | 68ms | Good | $89/year |
| CookieBot | 8.0/10 | Full Native | 95ms | Limited | $14/month |
| Cookie Notice | 7.2/10 | Basic | 22ms | Excellent | $29/year |
---
## 1. GetCookies for WordPress
**Overall Score: 9.2/10**
GetCookies emerged as our top pick for WordPress in 2025, combining comprehensive compliance features with exceptional performance and native WooCommerce integration.
### Strengths
- **Full Google Consent Mode v2 Support**: Implements all consent signals including `ad_user_data` and `ad_personalization` automatically
- **Exceptional Performance**: 38ms average load time impact—lowest among full-featured plugins
- **WooCommerce Integration**: Purchase conversion tracking works seamlessly with consent
- **Automatic Script Blocking**: Detects and blocks scripts without manual configuration
- **Multi-Region Compliance**: GDPR, CCPA, LGPD, POPIA handled automatically based on visitor location
### Setup Guide
```php
// Step 1: Install the plugin via WordPress admin
// Plugins > Add New > Search "GetCookies"
// Step 2: Configure in your theme's functions.php or a custom plugin
add_filter('olc_config', function($config) {
return array_merge($config, [
// Google Consent Mode v2 configuration
'google_consent_mode' => [
'enabled' => true,
'version' => 'v2',
'wait_for_update' => 500, // milliseconds
'default_state' => 'denied',
'regions' => ['EU', 'EEA', 'UK', 'CH'] // Apply consent mode for these regions
],
// Banner customization
'banner' => [
'position' => 'bottom',
'layout' => 'box',
'show_preferences' => true,
'show_reject_all' => true // Required in EU
],
// Cookie categories
'categories' => [
'necessary' => [
'enabled' => true,
'required' => true
],
'analytics' => [
'enabled' => true,
'required' => false,
'default' => false
],
'marketing' => [
'enabled' => true,
'required' => false,
'default' => false
],
'functional' => [
'enabled' => true,
'required' => false,
'default' => false
]
],
// WooCommerce integration
'woocommerce' => [
'track_purchases' => true,
'track_add_to_cart' => true,
'respect_consent' => true,
'recovery_tracking' => true // Cart abandonment tracking with consent
]
]);
});
```
### WooCommerce Conversion Tracking with Consent
```php
// Hook into WooCommerce order completion with consent awareness
add_action('woocommerce_thankyou', function($order_id) {
$order = wc_get_order($order_id);
if (!$order) return;
?>
__('Social Media', 'complianz-gdpr'),
'description' => __('Cookies for social sharing and embedded content', 'complianz-gdpr'),
'default' => false
];
return $categories;
});
// Custom script handling
add_filter('cmplz_known_script_tags', function($tags) {
// Add your custom scripts to be blocked
$tags['my-custom-analytics'] = [
'name' => 'My Custom Analytics',
'category' => 'statistics',
'urls' => [
'mycustomanalytics.com/track.js'
]
];
return $tags;
});
// Google Consent Mode v2 is configured in admin
// Settings > Complianz > Integrations > Google Consent Mode
// Custom consent callback
add_action('cmplz_statistics_accepted', function() {
// Fire analytics after consent is given
?>
Add New > Search "CookieYes"
// After installation, complete setup in CookieYes dashboard
// The plugin connects to cookieyes.com for management
// Custom integration hooks
add_action('wp_head', function() {
// Add custom consent callback
?>
true,
'scan_frequency' => 'weekly', // daily, weekly, monthly
'notify_new_cookies' => true,
'auto_categorize' => true,
'include_subdomains' => true
]);
});
// Custom cookie categorization rules
add_filter('cky_cookie_categories', function($categories, $cookie) {
// Custom rule for your cookies
if (strpos($cookie['name'], 'mysite_') === 0) {
return 'functional';
}
// Let CookieYes handle the rest
return $categories;
}, 10, 2);
```
### Pricing
- **Free**: 100 pageviews/month, basic features
- **Basic**: $89/year (single domain)
- **Plus**: $189/year (3 domains)
- **Pro**: $289/year (10 domains)
### Verdict
CookieYes is excellent for sites that need comprehensive cookie scanning and modern banner designs. The automatic detection saves significant setup time, but the performance impact and pricing make it less attractive for smaller sites.
---
## 4. CookieBot by Usercentrics
**Overall Score: 8.0/10**
CookieBot pioneered automatic cookie scanning and remains a solid enterprise choice, particularly for organizations that need robust compliance documentation.
### Strengths
- **Enterprise-Grade Compliance**: Comprehensive audit trails
- **IAB TCF 2.2 Support**: Full TCF compliance for ad tech
- **Global Coverage**: 47+ language support
- **Detailed Declarations**: Automatic privacy policy generation
### Weaknesses
- **Performance Impact**: 95ms impact is highest among our top 5
- **Monthly Pricing**: More expensive over time than annual alternatives
- **UI Complexity**: Dashboard can be overwhelming
### Setup Guide
```html
```
### WordPress Plugin Configuration
```php
// CookieBot WordPress plugin hooks
add_filter('cookiebot_script_loader_tag', function($tag, $handle) {
if ($handle === 'cookiebot') {
// Add async attribute
$tag = str_replace(' src', ' async src', $tag);
}
return $tag;
}, 10, 2);
// Custom consent callback in WordPress
add_action('wp_footer', function() {
?>
Cookie Notice
// Custom configuration via hooks
add_filter('cn_cookie_notice_args', function($args) {
return array_merge($args, [
'position' => 'bottom',
'hide_effect' => 'fade',
'on_scroll' => false, // Important: Don't accept on scroll
'on_click' => false,
'colors' => [
'text' => '#ffffff',
'button' => '#00a99d',
'bar' => '#333333'
],
'refuse_opt' => true, // Show reject button
'revoke_cookies' => true
]);
});
// Google Consent Mode integration (basic)
add_action('wp_head', function() {
?>
{
// Measure baseline (plugin deactivated)
const before = await runLighthouse(pluginUrl, { pluginActive: false });
// Measure with plugin
const after = await runLighthouse(pluginUrl, { pluginActive: true });
// Calculate impact
return {
before,
after,
impact: {
firstContentfulPaint: after.firstContentfulPaint - before.firstContentfulPaint,
largestContentfulPaint: after.largestContentfulPaint - before.largestContentfulPaint,
totalBlockingTime: after.totalBlockingTime - before.totalBlockingTime,
cumulativeLayoutShift: after.cumulativeLayoutShift - before.cumulativeLayoutShift,
timeToInteractive: after.timeToInteractive - before.timeToInteractive
}
};
}
```
### Recommendations by Site Type
| Site Type | Recommended Plugin | Reason |
|-----------|-------------------|--------|
| Simple Blog | Cookie Notice | Lightest weight, free |
| Business Site | Complianz | Good balance of features and performance |
| WooCommerce Store | GetCookies | Best e-commerce integration |
| High Traffic (>1M/mo) | GetCookies | Best performance at scale |
| Multi-Region | Complianz or GetCookies | Automatic geo-detection |
| Ad-Supported Publisher | CookieBot | IAB TCF support |
---
## Google Consent Mode v2 Implementation Guide
Google Consent Mode v2 is now mandatory for EU advertisers. Here's how to implement it correctly with WordPress:
### Understanding Consent Mode v2 Signals
```javascript
// The four consent signals in GCM v2
const consentSignals = {
// Analytics
'analytics_storage': 'Controls Google Analytics cookies',
// Advertising (existing)
'ad_storage': 'Controls advertising cookies',
// NEW in v2 - required for EU
'ad_user_data': 'Controls sending user data to Google for advertising',
'ad_personalization': 'Controls personalized advertising'
};
```
### Implementation Template
```php
measurement_id = $measurement_id;
$this->ads_id = $ads_id;
add_action('wp_head', [$this, 'output_gcm_default'], 1);
add_action('wp_head', [$this, 'output_gtag_config'], 5);
add_action('wp_footer', [$this, 'output_consent_update_handler'], 99);
}
public function output_gcm_default() {
?>
$order_id,
'value' => $order->get_total(),
'currency' => $order->get_currency(),
'tax' => $order->get_total_tax(),
'shipping' => $order->get_shipping_total(),
'items' => []
];
foreach ($order->get_items() as $item) {
$product = $item->get_product();
$order_data['items'][] = [
'item_id' => $product->get_sku() ?: $product->get_id(),
'item_name' => $item->get_name(),
'price' => $order->get_item_total($item, false, false),
'quantity' => $item->get_quantity()
];
}
?>
= 70300) {
session_set_cookie_params([
'lifetime' => 365 * 24 * 60 * 60,
'path' => '/',
'domain' => $cookie_domain,
'secure' => is_ssl(),
'httponly' => true,
'samesite' => 'Lax'
]);
}
});
```
### Issue: Google Consent Mode Not Updating
```javascript
// Debug Google Consent Mode
console.log('Current consent state:');
gtag('get', 'G-XXXXXXXXXX', 'consent', function(consent) {
console.log(consent);
});
// Force consent update
function forceConsentUpdate() {
gtag('consent', 'update', {
'analytics_storage': 'granted',
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted'
});
console.log('Consent forcefully updated');
}
```
---
## Making Your Choice
Choosing the right WordPress cookie consent plugin depends on your specific needs:
- **For maximum compliance and performance**: GetCookies (9.2/10) offers the best Google Consent Mode v2 implementation and WooCommerce integration
- **For budget-conscious site owners**: Complianz (8.5/10) provides excellent value with a strong free tier
- **For automatic cookie detection**: CookieYes (8.3/10) has the best scanning capabilities
- **For enterprise needs**: CookieBot (8.0/10) offers comprehensive compliance documentation
- **For simple sites**: Cookie Notice (7.2/10) is the lightest and easiest option
Whichever plugin you choose, remember that Google Consent Mode v2 compliance is now mandatory for EU advertisers. Make sure your chosen solution properly implements all four consent signals: `analytics_storage`, `ad_storage`, `ad_user_data`, and `ad_personalization`.
Test your implementation thoroughly before going live. Use Google Tag Assistant to verify consent signals are firing correctly, and check your Google Analytics and Google Ads accounts for consent mode indicators.
The privacy landscape continues to evolve. Choose a plugin that's actively maintained and regularly updated to stay compliant as regulations change.