{"id":289080,"date":"2026-04-05T12:46:27","date_gmt":"2026-04-05T12:46:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gdpr-localizer\/"},"modified":"2026-04-09T13:59:32","modified_gmt":"2026-04-09T13:59:32","slug":"gdpr-localizer","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/gdpr-localizer\/","author":23456621,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.1","stable_tag":"1.1.1","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"GDPR Localizer","header_author":"Vitalii Puida","header_description":"Automatically localizes Google Fonts to comply with GDPR requirements.","assets_banners_color":"edf1f5","last_updated":"2026-04-09 13:59:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/altaev.com\/gdpr-localizer","header_author_uri":"https:\/\/altaev.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":126,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"vpuida","date":"2026-04-06 18:53:09"},"1.1.0":{"tag":"1.1.0","author":"vpuida","date":"2026-04-08 17:40:42"},"1.1.1":{"tag":"1.1.1","author":"vpuida","date":"2026-04-09 13:59:32"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3499140,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3499140,"resolution":"256x256","location":"assets","locale":""},"icon-512x512.jpg":{"filename":"icon-512x512.jpg","revision":3499140,"resolution":"512x512","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3499140,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3499140,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3501907,"resolution":"1","location":"assets","locale":""},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3501907,"resolution":"2","location":"assets","locale":""},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3501904,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"The enhanced dashboard showing real-time font detection and proactive onboarding guide.","2":"Visual font previews: see exactly which fonts were captured and stored locally.","3":"Gravatar settings: host user avatars locally for 100% DSGVO compliance in comment sections."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[16626,154545,131785,3778,396],"plugin_category":[48,54],"plugin_contributors":[259457],"plugin_business_model":[],"class_list":["post-289080","plugin","type-plugin","status-publish","hentry","plugin_tags-cookie-consent","plugin_tags-dsgvo","plugin_tags-gdpr","plugin_tags-google-fonts","plugin_tags-privacy","plugin_category-language-tools","plugin_category-security-and-spam-protection","plugin_contributors-vpuida","plugin_committers-vpuida"],"banners":{"banner":"https:\/\/ps.w.org\/gdpr-localizer\/assets\/banner-772x250.jpg?rev=3499140","banner_2x":"https:\/\/ps.w.org\/gdpr-localizer\/assets\/banner-1544x500.jpg?rev=3499140","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gdpr-localizer\/assets\/icon-128x128.jpg?rev=3499140","icon_2x":"https:\/\/ps.w.org\/gdpr-localizer\/assets\/icon-256x256.jpg?rev=3499140","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gdpr-localizer\/assets\/Screenshot-1.png?rev=3501907","caption":"The enhanced dashboard showing real-time font detection and proactive onboarding guide."},{"src":"https:\/\/ps.w.org\/gdpr-localizer\/assets\/Screenshot-2.png?rev=3501907","caption":"Visual font previews: see exactly which fonts were captured and stored locally."},{"src":"https:\/\/ps.w.org\/gdpr-localizer\/assets\/Screenshot-3.png?rev=3501904","caption":"Gravatar settings: host user avatars locally for 100% DSGVO compliance in comment sections."}],"raw_content":"<!--section=description-->\n<p><strong>GDPR Localizer<\/strong> is a smart, lightweight solution to ensure your website complies with European privacy laws (GDPR\/DSGVO).<\/p>\n\n<p>Many popular themes (like Astra, OceanWP) and plugins load Google Fonts from Google's servers, which results in the unauthorized transfer of your visitors' IP addresses. This plugin automatically intercepts these requests, downloads the necessary font files to your local server, and rewrites the CSS to load them locally.<\/p>\n\n<h4>Why choose GDPR Localizer?<\/h4>\n\n<p>Unlike basic solutions, this plugin is designed to be truly \"set and forget.\" It doesn't just download fonts; it monitors your site's environment. If you update your theme version or switch to a new one, the plugin detects the change and refreshes the font cache automatically to ensure your design stays perfect, fast, and compliant.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Automatic Interception:<\/strong> Seamlessly handles fonts enqueued by themes and plugins.<\/li>\n<li><strong>Smart Theme Tracking:<\/strong> Automatically detects theme version updates and clears the font cache to prevent design conflicts.<\/li>\n<li><strong>Privacy First:<\/strong> Stops user IP addresses from being shared with Google CDN.<\/li>\n<li><strong>Performance Boost:<\/strong> Serving fonts locally eliminates external DNS lookups and SSL handshakes.<\/li>\n<li><strong>Transparent Audit:<\/strong> An intuitive admin dashboard shows you exactly which fonts were captured and their source (e.g., <code>astra-google-fonts<\/code>).<\/li>\n<li><strong>Clean UI:<\/strong> Interactive font logs with \"Expand\/Collapse\" functionality to keep your settings page tidy.<\/li>\n<li><strong>Local Gravatars:<\/strong> Automatically downloads and serves user avatars from your server to prevent IP tracking by Gravatar.<\/li>\n<li><strong>Smart Onboarding &amp; Preview:<\/strong> Professional dashboard with real-time detection logs and visual previews of localized fonts.<\/li>\n<li><strong>Deep Interception:<\/strong> Advanced support for Elementor and themes with complex CSS loading.<\/li>\n<li><strong>Privacy Hardening:<\/strong> Automatically strips redundant preconnect and dns-prefetch tags pointing to Google or Gravatar.<\/li>\n<\/ul>\n\n<h3>Deutsche Beschreibung (DSGVO)<\/h3>\n\n<p><strong>GDPR Localizer<\/strong> ist eine intelligente und schlanke L\u00f6sung, um sicherzustellen, dass Ihre Website den europ\u00e4ischen Datenschutzbestimmungen (DSGVO) entspricht.<\/p>\n\n<p>Viele beliebte Themes (wie Astra, OceanWP) und Plugins laden Google Fonts von Google-Servern, was zu einer unbefugten \u00dcbertragung der IP-Adressen Ihrer Besucher f\u00fchrt. Dieses Plugin f\u00e4ngt diese Anfragen automatisch ab, l\u00e4dt die ben\u00f6tigten Schriftdateien auf Ihren lokalen Server herunter und schreibt das CSS so um, dass sie lokal geladen werden.<\/p>\n\n<p><strong>Hauptmerkmale:<\/strong>\n* <strong>Automatische Erkennung:<\/strong> Verarbeitet nahtlos Schriften, die von Themes und Plugins in die Warteschlange gestellt werden.\n* <strong>Smart Theme Tracking:<\/strong> Erkennt automatisch Theme-Updates und leert den Schrift-Cache, um Design-Konflikte zu vermeiden.\n* <strong>DSGVO-Konformit\u00e4t:<\/strong> Verhindert die Weitergabe von Nutzer-IP-Adressen an Google CDN.\n* <strong>Performance-Schub:<\/strong> Lokales Laden von Schriften verbessert die Ladezeit durch Wegfall externer DNS-Abfragen.\n* <strong>Transparentes Audit:<\/strong> Ein intuitives Dashboard zeigt genau an, welche Schriftarten erfasst wurden.\n* <strong>Lokale Gravatare:<\/strong> L\u00e4dt Benutzer-Avatare automatisch herunter und stellt sie von Ihrem Server bereit, um IP-Tracking durch Gravatar zu verhindern.\n* <strong>Intelligentes Onboarding &amp; Vorschau:<\/strong> Professionelles Dashboard mit Echtzeit-Protokollen und visueller Vorschau lokalisierter Schriftarten.\n* <strong>Tiefe Interzeption:<\/strong> Erweiterte Unterst\u00fctzung f\u00fcr Elementor und Themes mit komplexem CSS-Laden.\n* <strong>Privacy Hardening:<\/strong> Entfernt automatisch \u00fcberfl\u00fcssige Preconnect- und DNS-Prefetch-Tags zu Google- oder Gravatar-Servern.<\/p>\n\n<p>Gef\u00e4llt Ihnen GDPR Localizer? Bitte unterst\u00fctzen Sie uns mit einer 5-Sterne-Bewertung!<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Google Fonts services to localized your website's typography and ensure GDPR compliance.<\/p>\n\n<ol>\n<li><strong>Google Fonts API (fonts.googleapis.com):<\/strong> Used to fetch the CSS rules for the fonts enqueued by your theme or plugins.<\/li>\n<li><strong>Google Fonts Static (fonts.gstatic.com):<\/strong> Used to download the actual font files (.woff2, .ttf, etc.) to your local server.<\/li>\n<\/ol>\n\n<p>This process happens only when a new font is detected or when the font cache is refreshed (e.g., after a theme update). Once the fonts are stored locally, no further requests are made to Google.<\/p>\n\n<ul>\n<li><strong>Google Fonts Privacy FAQ:<\/strong> https:\/\/developers.google.com\/fonts\/faq\/privacy<\/li>\n<li><strong>Google Privacy Policy:<\/strong> https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Google Terms of Service:<\/strong> https:\/\/policies.google.com\/terms<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>gdpr-localizer<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Visit <strong>Settings &gt; GDPR Localizer<\/strong> to view the status of your localized fonts.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20block%20themes%20%28fse%29%3F\"><h3>Does this work with block themes (FSE)?<\/h3><\/dt>\n<dd><p>Yes! It is fully compatible with modern block themes (like Twenty Twenty-Five) and handles fonts registered via the WordPress Font Face API.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>No. Serving fonts locally usually improves your PageSpeed score by reducing the number of external requests.<\/p><\/dd>\n<dt id=\"where%20are%20the%20fonts%20stored%3F\"><h3>Where are the fonts stored?<\/h3><\/dt>\n<dd><p>All files are securely stored in <code>\/wp-content\/uploads\/gdpr-local-fonts\/<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20gravatar%3F\"><h3>Does it work with Gravatar?<\/h3><\/dt>\n<dd><p>Yes! Starting from version 1.1.0, the plugin can automatically download and serve user avatars from your own server, eliminating external requests to secure.gravatar.com.<\/p><\/dd>\n<dt id=\"why%20are%20preconnect%20tags%20being%20removed%3F\"><h3>Why are preconnect tags being removed?<\/h3><\/dt>\n<dd><p>Even if fonts are loaded locally, some themes keep \"preconnect\" links to Google. This still creates a technical connection to Google's servers. GDPR Localizer 1.1.0 strips these tags to ensure 100% privacy compliance.<\/p><\/dd>\n<dt id=\"funktioniert%20das%20mit%20block-themes%20%28fse%29%3F\"><h3>Funktioniert das mit Block-Themes (FSE)?<\/h3><\/dt>\n<dd><p>Ja! [cite_start]Es ist voll kompatibel mit modernen Block-Themes (wie Twenty Twenty-Five) und unterst\u00fctzt Schriftarten, die \u00fcber die WordPress Font Face API registriert wurden. [cite: 31, 32]<\/p><\/dd>\n<dt id=\"wird%20es%20meine%20website%20verlangsamen%3F\"><h3>Wird es meine Website verlangsamen?<\/h3><\/dt>\n<dd><p>Nein. [cite_start]Das lokale Laden von Schriftarten verbessert in der Regel Ihren PageSpeed-Score, da externe Anfragen reduziert werden. [cite: 33]<\/p><\/dd>\n<dt id=\"wo%20werden%20die%20schriftarten%20gespeichert%3F\"><h3>Wo werden die Schriftarten gespeichert?<\/h3><\/dt>\n<dd><p>[cite_start]Alle Dateien werden sicher im Verzeichnis <code>\/wp-content\/uploads\/gdpr-local-fonts\/<\/code> gespeichert. [cite: 34]<\/p><\/dd>\n<dt id=\"gef%C3%A4llt%20ihnen%20gdpr%20localizer%3F\"><h3>Gef\u00e4llt Ihnen GDPR Localizer?<\/h3><\/dt>\n<dd><p>Bitte unterst\u00fctzen Sie uns mit einer 5-Sterne-Bewertung! Ihr Feedback hilft uns, dieses Tool f\u00fcr alle WordPress-Nutzer zu verbessern.<\/p><\/dd>\n<dt id=\"funktioniert%20das%20plugin%20mit%20gravatar%3F\"><h3>Funktioniert das Plugin mit Gravatar?<\/h3><\/dt>\n<dd><p>Ja! Ab Version 1.1.0 kann das Plugin Benutzer-Avatare automatisch herunterladen und von Ihrem eigenen Server bereitstellen. Dadurch werden externe Anfragen an secure.gravatar.com eliminiert.<\/p><\/dd>\n<dt id=\"warum%20werden%20preconnect-tags%20entfernt%3F\"><h3>Warum werden Preconnect-Tags entfernt?<\/h3><\/dt>\n<dd><p>Selbst wenn Schriftarten lokal geladen werden, behalten einige Themes \"Preconnect\"-Links zu Google bei. Dies baut dennoch eine technische Verbindung zu Google-Servern auf. GDPR Localizer 1.1.0 entfernt diese Tags, um 100%ige Datenschutzkonformit\u00e4t zu gew\u00e4hrleisten.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: Improved compatibility with LiteSpeed Cache and other caching plugins.<\/li>\n<li>Fix: Added automatic server-side cache purging upon plugin activation and manual reset.<\/li>\n<li>Fix: Resolved an issue where only a partial number of fonts were deleted during a manual reset.<\/li>\n<li>Improvement: Updated onboarding flow to bypass aggressive caching during the initial font scan.<\/li>\n<li>Improvement: Optimized file system operations for more reliable font directory management.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li><strong>Feature:<\/strong> Added Gravatar localization support for user profiles and comments.<\/li>\n<li><strong>Improvement:<\/strong> Redesigned the admin interface with a proactive onboarding wizard.<\/li>\n<li><strong>Improvement:<\/strong> Added visual font previews and \"Expand\/Collapse\" functionality for better UX.<\/li>\n<li><strong>Improvement:<\/strong> Implemented output buffering to remove redundant preconnect\/dns-prefetch hints for Google\/Gravatar.<\/li>\n<li><strong>Fix:<\/strong> Enhanced detection logic for Elementor and themes using encoded URLs (html_entity_decode).<\/li>\n<li><strong>Fix:<\/strong> Fixed a TypeError in resource hints filtering when handling array-based hints.<\/li>\n<li><strong>Security:<\/strong> Full code audit for data escaping and sanitization (WP.org compliant).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Added smart theme version tracking for automatic cache management.<\/li>\n<li>Implemented source-based font grouping for better transparency.<\/li>\n<li>Added interactive \"Expand\/Collapse\" UI for font logs.<\/li>\n<li>Full compatibility with WordPress 6.7 and Astra theme.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: Kompatibilit\u00e4t mit LiteSpeed Cache und anderen Caching-Plugins verbessert.<\/li>\n<li>Fix: Automatisches Leeren des serverseitigen Caches bei Aktivierung des Plugins und manuellem Reset hinzugef\u00fcgt.<\/li>\n<li>Fix: Problem behoben, bei dem beim manuellen Zur\u00fccksetzen nur ein Teil der Schriftarten gel\u00f6scht wurde.<\/li>\n<li>Optimierung: Onboarding-Prozess aktualisiert, um aggressives Caching w\u00e4hrend des ersten Schriftart-Scans zu umgehen.<\/li>\n<li>Optimierung: Dateisystem-Operationen f\u00fcr eine zuverl\u00e4ssigere Verwaltung des Schriftart-Verzeichnisses verbessert.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li><strong>Feature:<\/strong> Gravatar-Lokalisierung f\u00fcr Benutzerprofile und Kommentare hinzugef\u00fcgt.<\/li>\n<li><strong>Verbesserung:<\/strong> \u00dcberarbeitete Admin-Oberfl\u00e4che mit proaktivem Onboarding-Assistenten.<\/li>\n<li><strong>Verbesserung:<\/strong> Visuelle Schriftart-Vorschau und \"Ausklappen\"-Funktion f\u00fcr eine bessere UX hinzugef\u00fcgt.<\/li>\n<li><strong>Verbesserung:<\/strong> Implementierung von Output-Buffering zum Entfernen \u00fcberfl\u00fcssiger Preconnect\/DNS-Prefetch-Tags.<\/li>\n<li><strong>Fix:<\/strong> Verbesserte Erkennungslogik f\u00fcr Elementor und Themes mit kodierten URLs.<\/li>\n<li><strong>Fix:<\/strong> TypeError bei der Filterung von Ressourcen-Hinweisen behoben.<\/li>\n<li><strong>Sicherheit:<\/strong> Vollst\u00e4ndiges Code-Audit f\u00fcr Daten-Escaping und Sanitization (WP.org-konform).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Erstver\u00f6ffentlichung (Initial Release).<\/li>\n<li>Intelligente Verfolgung der Theme-Versionen f\u00fcr automatisches Cache-Management hinzugef\u00fcgt.<\/li>\n<li>Implementierung einer quellenbasierten Gruppierung von Schriftarten f\u00fcr mehr Transparenz.<\/li>\n<li>Interaktive Benutzeroberfl\u00e4che zum Aus- und Einklappen der Schriftarten-Logs hinzugef\u00fcgt.<\/li>\n<li>Volle Kompatibilit\u00e4t mit WordPress 6.7 und dem Astra-Theme.<\/li>\n<\/ul>","raw_excerpt":"Automatically localizes Google Fonts to comply with GDPR\/DSGVO requirements by hosting them on your own server. Set it and forget it.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/289080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=289080"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vpuida"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=289080"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=289080"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=289080"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=289080"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=289080"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=289080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}