Opt-Out for Google Analytics (DSGVO / GDPR)
by Schweizer Solutions GmbH 4.3 (6 reviews)

Opt-Out for Google Analytics (DSGVO / GDPR)

GDPR opt-out link for Google Analytics 4 as block, Elementor and Divi module, with automatic status check, uptime monitoring API and webhooks.

Opt-Out for Google Analytics (DSGVO / GDPR) ranks #3,848 among WordPress.org plugins with 3,000+ active installations, is #120 of 2,168 in the Analytics category, a 4.3/5 rating from 6 reviews, and was last updated Oct 30, 2026. Data from WordPress.org, refreshed twice daily — see methodology.

Compatible with WP 7.1
v2.7.1 Current Version v2.7.1
Updated 2 days ago Last Update on 30 Oct, 2026
Refreshed 2 days ago Last Refreshed on
#120 of 2,168 in Analytics Top 5% by installs Downloads +153.8% this week Actively maintained
View on WordPress.org
Rank
#3,848
— No change
Active Installs
3K+
-23.5%
KW Avg Position
48.4
1.6 worse
Downloads
102.9K
+19 today
Support Resolved
0%
— No change
Rating
86%
Review 4.3 out of 5
4.3 (6 reviews)

Next Milestone 4K

Total Progress 90.4%
3K+ 4K+
239
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 96 more installs to reach 4K+

Rank Changes

3,843 3,848 3,853 3,858 3,863 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026
3,829 3,838 3,846 3,855 3,863 17-10-2026 18-10-2026 19-10-2026 20-10-2026 21-10-2026 22-10-2026 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026
Current #3,848
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 500 1K 1.5K 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026
0 500 1K 1.5K 17-10-2026 18-10-2026 19-10-2026 20-10-2026 21-10-2026 22-10-2026 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

4.3
6 reviews
Overall 86%
5
5 (83%)
4
0 (0%)
3
0 (0%)
2
0 (0%)
1
1 (17%)

Support Threads Overview

Resolved
Unresolved
1
Total Threads
0
Resolved
1
Unresolved
0%
Resolution Rate

Security History

Source: WPVulnerability

No known vulnerabilities on record for Opt-Out for Google Analytics (DSGVO / GDPR). Checked 1 month ago.

TL;DR

AI summary of the plugin's readme

This plugin is for WordPress site owners in the EU who need to comply with GDPR/DSGVO requirements around Google Analytics tracking. It lets site visitors opt out (and later opt back in) of Google Analytics tracking via a simple link or shortcode, without requiring browser addons or custom JavaScript.

  • Google Analytics 4 support
  • WordPress GDPR feature integration
  • Weekly compliance setting checks
  • Google Tag Manager compatibility
  • HTML5 local storage fallback
  • WordPress Multisite compatible
  • Gutenberg Editor compatible
  • Customizable popup on opt-out link

Frequently Asked Questions

Common questions about Opt-Out for Google Analytics (DSGVO / GDPR)

The General Data Protection Regulation (GDPR, German: DSGVO) requires that website visitors can object to the collection of their data by Google Analytics. Until now, this was only possible with a browser add-on or with complicated JavaScript code on your own website. With this plugin, it is very easy, and visitors can also undo their objection.
Yes, because both follow Google's specifications for Google Analytics 4. More information: https://developers.google.com/tag-platform/security/guides/privacy#turn-off-analytics
Yes. The plugin also works if the tracking code was added to the theme manually or with another plugin.
Yes, we recommend offering the opt-out for Google Analytics in your privacy policy. Keeping track of all changes in data protection law is not easy, especially alongside your core business. That's why we offer a privacy policy generator together with our partner eRecht24. You create your privacy policy ONCE, and it is automatically kept up to date in WordPress. No more filling out forms and copying and pasting privacy statements: it is completely automated. More information: https://schweizer.solutions/erecht24
The cookie is only valid in the browser in which the visitor clicked the opt-out link. In a different browser, the visitor has to click the link again. If the visitor clears their browser data (cookies, history, etc.), the cookie is deleted as well, and they have to click the opt-out link again.
To turn off the opt-out function, go to Settings > GA Opt-Out and switch off "Enable Opt-Out function". To deactivate the whole plugin, go to Plugins > Installed Plugins and click "Deactivate" below "Opt-Out for Google Analytics". After deactivating the plugin, you can remove it completely by clicking "Delete".
You can use the shortcode [ga_optout] in posts, pages and widgets (text widget). In the block editor, you can also use the block "Opt-Out for Google Analytics", and in Elementor and Divi the widget or module with the same name.
Yes. In the Gutenberg block, the Elementor widget and the Divi module, you can enter individual link and popup texts in the settings. If you use the shortcode, add the texts as attributes: [ga_optout link_deactivate="Disallow tracking" link_activate="Allow tracking" popup_deactivate="Tracking is disabled." popup_activate="Tracking is enabled."] If a text is empty, the text from the plugin settings is used. With popup_type="notice" the popup text is shown below the link instead of a browser popup (popup_type="alert"), with force_reload="yes" or force_reload="no" the page is reloaded after the click or not. Without these attributes, the settings of the plugin are used. In the block, the Elementor widget and the Divi module, these options are in the settings too.
Yes. The plugin provides the following actions and filters: // Before the shortcode is rendered add_action( 'gaoo_before_shortcode', 'my_before_shortcode', 10, 2); function my_before_shortcode( $tracking_code, $current_status ) { // $tracking_code - The measurement ID in use: "G-XXXXXXXXXX" // $current_status - The current status of the visitor: activate or deactivate } // After the shortcode is rendered add_action( 'gaoo_after_shortcode', 'my_after_shortcode', 10, 2); function my_after_shortcode( $tracking_code, $current_status ) { // $tracking_code - The measurement ID in use: "G-XXXXXXXXXX" // $current_status - The current status of the visitor: activate or deactivate } // Before the JavaScript code that disables GA is output add_action( 'gaoo_before_head_script', 'my_before_script', 10, 1); function my_before_script( $tracking_code ) { // $tracking_code - The measurement ID in use: "G-XXXXXXXXXX" } // After the JavaScript code that disables GA is output add_action( 'gaoo_after_head_script', 'my_after_script', 10, 1); function my_after_script( $tracking_code ) { // $tracking_code - The measurement ID in use: "G-XXXXXXXXXX" } // The GA4 measurement ID in use add_filter( 'gaoo_get_ua_code', 'my_ga_tracking_code', 10, 2 ); function my_ga_tracking_code( $tracking_code, $ga_plugin ) { // $tracking_code - The measurement ID in use: "G-XXXXXXXXXX" // $ga_plugin - The selected source of the measurement ID } // Whether the page should be reloaded after the click add_filter( 'gaoo_force_reload', 'my_force_reload', 10, 1); function my_force_reload( $force ) { // $force - "true" = reload the page; "false" = do not reload } // The texts from the settings (also: gaoo_link_activate_text, gaoo_popup_deactivate_text, gaoo_popup_activate_text) add_filter( 'gaoo_link_deactivate_text', 'my_link_text', 10, 1 ); function my_link_text( $text ) { // $text - The text from the settings return $text; } // The individual texts of a shortcode, block, Elementor widget or Divi module add_filter( 'gaoo_shortcode_atts', 'my_shortcode_atts', 10, 1 ); function my_shortcode_atts( $atts ) { // $atts - Array with the keys link_deactivate, link_activate, popup_deactivate, popup_activate, popup_type (alert, notice) and force_reload (yes, no). An empty value uses the settings. return $atts; } // The HTML code of the link, e.g. to add a wrapper. The class "gaoo-link" must be kept. add_filter( 'gaoo_shortcode_html', 'my_shortcode_html', 10, 4 ); function my_shortcode_html( $html, $tracking_code, $current_status, $atts ) { return '<p class="my-optout">' . $html . '</p>'; } // The status check: the page for the check of the website (default: home page) add_filter( 'gaoo_frontend_check_url', 'my_frontend_check_url', 10, 1 ); function my_frontend_check_url( $url ) { return home_url( '/privacy-policy/' ); } // The status check: whether the link was found on the privacy policy page, e.g. for page builders which store the content in their own format add_filter( 'gaoo_shortcode_found', 'my_shortcode_found', 10, 3 ); function my_shortcode_found( $found, $page_id, $page ) { // $found - true if the plugin found the link return $found || false !== strpos( (string) get_post_meta( $page_id, 'my_builder_content', true ), '[ga_optout' ); } // The status check: add own checks. They are shown in the dashboard widget, on the settings page and in the status email. add_filter( 'gaoo_status_checks', 'my_status_checks', 10, 2 ); function my_status_checks( $checks, $settings ) { $checks[] = array( 'id' => 'cookie_banner', // Optional: unique ID of the check, e.g. for the REST API. The last check with the same ID wins. 'label' => 'Cookie banner is active', // Text of the check 'checked' => is_plugin_active( 'my-cookie-banner/my-cookie-banner.php' ), // true = passed, false = failed, null = unknown 'url' => admin_url( 'plugins.php' ), // Optional: page to fix the check ); return $checks; } // After every status check (automatic or "Check now"), e.g. to send the result to another service add_action( 'gaoo_status_check_done', 'my_status_check_done', 10, 2 ); function my_status_check_done( $checks, $failed ) { // $checks - List of the checks with the keys "label" and "checked" // $failed - true if at least one check failed } // Data of the webhook, sent as JSON (format: json, slack, teams or discord) add_filter( 'gaoo_webhook_payload', 'my_webhook_payload', 10, 4 ); function my_webhook_payload( $payload, $format, $checks, $network ) { // $network - true for the webhook of the network (multisite) return $payload; } // Number of sites per page in the overview of the network (default: 50) add_filter( 'gaoo_network_per_page', function () { return 100; } ); // The status email, which is only sent if a check failed (also: gaoo_status_mail_subject, gaoo_status_mail_body) add_filter( 'gaoo_status_mail_recipients', 'my_status_mail_recipients', 10, 2 ); function my_status_mail_recipients( $recipients, $checks ) { // $recipients - Array of email addresses. An empty array sends no email. $recipients[] = 'monitoring@example.org'; return $recipients; }
Some custom themes do not render shortcodes, so the link is not displayed. In this case, add the following code to your theme at the desired position: echo do_shortcode('[ga_optout]'); The status check reports a problem, although I have already fixed it! If you changed a setting, e.g. in a compatible Google Analytics plugin, the change is only detected during the next automatic check (daily, weekly or monthly, depending on your settings). You can run the check right away: click "Check now" in the dashboard widget or on the settings page Settings > GA Opt-Out. The next automatic check is then moved by the interval.

Sign In / Register

You need to sign in or register to use this feature.