{"id":153290,"date":"2022-02-15T14:11:01","date_gmt":"2022-02-15T14:11:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gdpr-press\/"},"modified":"2026-04-03T09:46:00","modified_gmt":"2026-04-03T09:46:00","slug":"gdpr-press","status":"publish","type":"plugin","link":"https:\/\/sr.wordpress.org\/plugins\/gdpr-press\/","author":14423718,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.0","stable_tag":"1.3.0","tested":"6.9.4","requires":"5.9","requires_php":"7.2","requires_plugins":null,"header_name":"GDPRess","header_author":"Daan from Daan.dev","header_description":"Easily eliminate external requests with GDPRess.","assets_banners_color":"0164b2","last_updated":"2026-04-03 09:46:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/gdpr-press\/","header_author_uri":"https:\/\/daan.dev","rating":5,"author_block_rating":0,"active_installs":1000,"downloads":11767,"num_ratings":9,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"DaanvandenBergh","date":"2022-02-15 14:11:11"},"1.1.0":{"tag":"1.1.0","author":"DaanvandenBergh","date":"2022-03-04 18:51:54"},"1.2.0":{"tag":"1.2.0","author":"DaanvandenBergh","date":"2022-05-23 14:04:42"},"1.2.1":{"tag":"1.2.1","author":"DaanvandenBergh","date":"2022-07-18 19:31:38"},"1.2.2":{"tag":"1.2.2","author":"DaanvandenBergh","date":"2022-07-18 19:58:27"},"1.2.3":{"tag":"1.2.3","author":"DaanvandenBergh","date":"2022-09-05 12:42:23"},"1.3.0":{"tag":"1.3.0","author":"DaanvandenBergh","date":"2026-04-03 09:46:00"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":9},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3498092,"resolution":"256x256","location":"assets","locale":""},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3498092,"resolution":"512x512","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3498092,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3498092,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.1.0","1.2.0","1.2.1","1.2.2","1.2.3","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3498092,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3498092,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3498092,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3498092,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3498092,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"GDPRess' Start screen, click Scan Website to start.","2":"After running the initial scan, external requests are listed. Exclude a file when e.g., you suspect it might not work properly when it's downloaded.","3":"Google Analytics is automatically excluded because simply downloading the file is not enough to use it in compliance with GDPR. Click on the link in the tooltip for more information.","4":"Google Fonts are supported, but when many font families and\/or font styles are detected, GDPRess will offer an alternative approach to optimize the request.","5":"When the selected files are downloaded, the URLs of the local copies are listed."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[57465,49894,154545,1920,131785],"plugin_category":[],"plugin_contributors":[84021],"plugin_business_model":[],"class_list":["post-153290","plugin","type-plugin","status-publish","hentry","plugin_tags-3rd-party","plugin_tags-avg","plugin_tags-dsgvo","plugin_tags-external","plugin_tags-gdpr","plugin_contributors-daanvandenbergh","plugin_committers-daanvandenbergh"],"banners":{"banner":"https:\/\/ps.w.org\/gdpr-press\/assets\/banner-772x250.png?rev=3498092","banner_2x":"https:\/\/ps.w.org\/gdpr-press\/assets\/banner-1544x500.png?rev=3498092","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gdpr-press\/assets\/icon-256x256.png?rev=3498092","icon_2x":"https:\/\/ps.w.org\/gdpr-press\/assets\/icon-256x256.png?rev=3498092","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gdpr-press\/assets\/screenshot-1.png?rev=3498092","caption":"GDPRess' Start screen, click Scan Website to start."},{"src":"https:\/\/ps.w.org\/gdpr-press\/assets\/screenshot-2.png?rev=3498092","caption":"After running the initial scan, external requests are listed. Exclude a file when e.g., you suspect it might not work properly when it's downloaded."},{"src":"https:\/\/ps.w.org\/gdpr-press\/assets\/screenshot-3.png?rev=3498092","caption":"Google Analytics is automatically excluded because simply downloading the file is not enough to use it in compliance with GDPR. Click on the link in the tooltip for more information."},{"src":"https:\/\/ps.w.org\/gdpr-press\/assets\/screenshot-4.png?rev=3498092","caption":"Google Fonts are supported, but when many font families and\/or font styles are detected, GDPRess will offer an alternative approach to optimize the request."},{"src":"https:\/\/ps.w.org\/gdpr-press\/assets\/screenshot-5.png?rev=3498092","caption":"When the selected files are downloaded, the URLs of the local copies are listed."}],"raw_content":"<!--section=description-->\n<p><strong>GDPRess can be downloaded for free without any paid subscription from <a href=\"https:\/\/wordpress.org\/plugins\/gdpr-press\/\">the official WordPress repository<\/a>.<\/strong><\/p>\n\n<p>In January 2022 <a href=\"https:\/\/daan.dev\/blog\/gdpr\/google-fonts-violates-gdpr-germany\/\">a German court ruled<\/a> that a website owner was in breach of GDPR and should pay a \u20ac 100,- fine, because embedded Google Fonts were used, essentially transferring the user's personal data (IP address) without the user's prior consent.<\/p>\n\n<h4>What's embedding?<\/h4>\n\n<p>When an external (i.e., loaded from another server, besides your own) resource is embedded into a webpage, it basically means that the resource behaves as if it's loaded from the same server hosting the webpage.<\/p>\n\n<h4>Why is using embedded resources in breach of GDPR?<\/h4>\n\n<p>Because of <a href=\"https:\/\/daan.dev\/blog\/how-to\/google-fonts-gdpr\/#h-how-the-internet-works\">the way the internet works<\/a>. When a browser (i.e., computer) requests a file (e.g., an image or a font file), the server needs the IP address of that computer to send it back. All these requests (including the IP address) are logged in a so-called <code>access.log<\/code>.<\/p>\n\n<p>Once this IP address leaves the European Union, your website is violating the GDPR.<\/p>\n\n<h4>What does this plugin do?<\/h4>\n\n<p>GDPRess scans your homepage for third party scripts (JS) and stylesheets (CSS), and:<\/p>\n\n<ul>\n<li>Allows you to download or exclude them from downloading.<\/li>\n<li>Parses the stylesheets for loaded font files, downloads them, and rewrites the stylesheet to use the local copies.<\/li>\n<li>Makes sure the local copies of each script\/stylesheet are used in your site's frontend.<\/li>\n<\/ul>\n\n<p>In short, it makes sure no requests are made to external\/embedded\/3rd party scripts and stylesheets.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/gdpr-press<\/code> directory or install the plugin through WordPress Plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Use the Settings -&gt; GDPRess screen to configure the plugin<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20remove%2Fpreload%20stylesheets%20and%2For%20scripts%20with%20this%20plugin%3F\"><h3>Can I remove\/preload stylesheets and\/or scripts with this plugin?<\/h3><\/dt>\n<dd><p>No, because there are other plugins (like Asset Cleanup or Autoptimize) that are already excellent at that.<\/p><\/dd>\n<dt id=\"gdpress%20downloaded%20a%20stylesheet%2Fscript%2C%20but%20i%27m%20still%20seeing%20requests%20to%20font%20files%20loaded%20by%20the%20stylesheet%3F\"><h3>GDPRess downloaded a stylesheet\/script, but I'm still seeing requests to font files loaded by the stylesheet?<\/h3><\/dt>\n<dd><p>GDPRess parses the stylesheet for defined src urls. But if it somehow missed it, I'd love to hear about that, because that might be a bug. Please head over to the support forum and submit a ticket, and include the full URL to the external stylesheet.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20allow%20me%20to%20use%20google%20analytics%20in%20compliance%20with%20gdpr%3F\"><h3>Will this plugin allow me to use Google Analytics in compliance with GDPR?<\/h3><\/dt>\n<dd><p>No, because much more is needed than <em>just<\/em> downloading analytics.js\/gtag.js to your server. To <a href=\"https:\/\/daan.dev\/blog\/gdpr\/google-analytics-compliance-gdpr\/\">use Google Analytics in compliance with GDPR<\/a>, you need <a href=\"https:\/\/daan.dev\/wordpress\/caos-pro\/\">CAOS Pro<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0 | The \"He is risen!\" Release<\/h4>\n\n<ul>\n<li>Added: Admin bar menu with \"Scan this page\" option to trigger a scan on the current page.<\/li>\n<li>Added: An exclusion list \u2014 known resources that break when locally hosted (e.g., Google Analytics, Stripe.js, Usercentrics) are now automatically excluded, with a tooltip explaining why.<\/li>\n<li>Added: Google Fonts and Web Font Loader requests are highlighted with a suggestion to use OMGF (Pro) for more advanced optimization.<\/li>\n<li>Added: Web Font Loader (<code>webfont.js<\/code>) is now detected and downloaded locally.<\/li>\n<li>Improved: \"Re-scan\" button replaces \"Scan again\" \u2014 clears the cache and rescans in one click.<\/li>\n<li>Improved: Settings page restyled to match the look and feel of other Daan.dev plugins.<\/li>\n<li>Improved: \"Save Changes &amp; Download\" renamed to \"Process Changes\" \u2014 also deletes locally hosted files for excluded resources.<\/li>\n<li>Fixed: Protocol-relative URLs (<code>\/\/<\/code>) are now correctly detected as external resources.<\/li>\n<li>Fixed: Non-external URI schemes (<code>data:<\/code>, <code>blob:<\/code>, <code>javascript:<\/code>) are no longer mistakenly processed.<\/li>\n<li>Fixed: CSS paths are now correctly rewritten after a stylesheet is downloaded.<\/li>\n<li>Fixed: Test Mode can now always be toggled.<\/li>\n<li>Tested up to WordPress 6.9.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Fixed: call to undefined function download_url().<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fixed: GDPRess now runs before OMGF\/CAOS, so e.g., OMGF Pro can optimize previously externally hosted stylesheets.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed: Protocol (\/\/) and Root (\/) relative URLs shouldn't be interpreted as external URLs.<\/li>\n<li>Fixed: Let CAOS\/OMGF handle their files, if these plugins are active.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added: Run a quick scan on each page to see if new external (third party) requests are present on that page!<\/li>\n<li>Added: Test Mode (enabled by Default) to allow users to first test the optimizations before releasing them to the public.<\/li>\n<li>Fixed: Don't use WP_Filesystem to get and put file contents.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Google Fonts support\n\n<ul>\n<li>When many Font Families or Font Styles are detected, GDPR Press will suggest to use OMGF to optimize the request before downloading it.<\/li>\n<\/ul><\/li>\n<li>Fixed several bugs, notices, and warnings.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added: tooltip next to a success message.<\/li>\n<li>Fixed: tooltip-icon line height.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: Conflicts with some caching\/optimization plugins:\n\n<ul>\n<li>Autoptimize<\/li>\n<li>WP Rocket<\/li>\n<li>W3 Total Cache<\/li>\n<li>WP Optimize<\/li>\n<\/ul><\/li>\n<li>Fixed: several warnings and notices.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>First release!<\/li>\n<\/ul>","raw_excerpt":"GDPRess can be downloaded for free without any paid subscription from the official WordPress repository.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/153290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=153290"}],"author":[{"embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/daanvandenbergh"}],"wp:attachment":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=153290"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=153290"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=153290"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=153290"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=153290"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=153290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}