One-click solution to automatically serve external assets from your local website.
No configuration and no coding required – activate the plugin and forget about it.
This plugin does not provide any guarantees of making your website GDPR-compliant. As a website operator, you are always responsible to verify if this plugin works for you and collect consent for external scripts before loading them in the visitor’s browser.
2. How it works
Short: External files are downloaded to your WordPress installation (into the uploads-folder) and then served from there.
The plugin scans every URL that is enqueued via
wp_enqueue_style(). When detecting an external URL, that file is saved to your uploads-folder and served from there.
It also scans the contents of CSS files for external dependencies and also saves those files to your uploads-folder!
Heads-up: For technical reasons, we cannot scan the contents of JS files for such dependencies – JS files can always inject external assets
No Output Buffer:
This plugin does not add any “output buffering” but scans the URLs which are enqueued via recommended WordPress functions.
As a result, GDPR Cache Scripts & Styles has practically no performance impact on your response time, no matter how big your website is.
To speed up your website’s loading time, all assets are downloaded in a background process: When a new asset is detected, or a cached file expires, a worker-task is enqueued.
The queue is then processed in an asynchronous process; while the queue is processed, your website could still serve the external assets for a while – usually the queue is processed within one or two minutes.
3. Options Page
You’ll find the plugin options page at “Tools > GDPR Cache”. On that page you can refresh and purge your website’s cache.
Here you can also review a full list of all files that are locally cached, and review the expiration date of each file – when a file expires, the plugin downloads a new version of it from the remote server.
Additionally, when you deactivate the plugin, the entire cache is purged (all files are deleted and relevant DB values are reset)
4. Tested with
We’ve tested this plugin with the following themes and plugins:
- Block Editor (embedding Google Fonts via the Customizer’s “Additional CSS”)
- Divi (see “Configuration for Divi” below)
- Jetpack (specially with Performance options like “site accelerator”)
- Fonts Plugin | Google Fonts Typography
- Works on multisite networks
Most other plugins and themes will work with this plugin as well. If you encounter any issues, please let us know, so we can improve this plugin 👍
Automatic WordPress installer:
- Install the plugin from wordpress.org
- Activate it.
- Done! No configuration needed.
- Visit github.com/divimode/gdpr-cache-script-styles and download the repository zip file.
- Open your wp-admin > Plugins > Add New page and upload that zip file
- Activate the plugin.
- Done! No configuration needed.
Note: When installing the plugin from GitHub, it will be replaced with updates from the wordpress.org repository
Can this plugin make Google Fonts GDPR safe?
Yes, activate this plugin, and you’re done.
We tested this plugin on numerous websites with different themes, and it was able to detect and cache all Google Fonts automatically.
Does this eliminate all external scripts?
Unfortunately, no. Some scripts (such as Google Maps scripts) will load external assets that cannot be detected or cached by this plugin.
Configuration for Divi
If you’re using the Divi Theme, you need to disable the Theme Option “Improve Google Fonts Loading”.
You can find that option in wp-admin > Divi > Theme Options > General > Performance
When this option is enabled, this plugin cannot detect the Google Fonts, and your website will make some external requests to load those font-files.
I still see some requests to Google’s Servers
Common reasons are:
- Cache is not ready yet. The initialization takes some time – check the status on “wp-admin > Tools > GDPR Cache” to see the state.
- A browser plugin loads external assets on every request. Test the page in an Incognito or Private window.
- Some scripts, like Google Maps, can dynamically load Google Fonts or other external resources. This cannot be prevented by this plugin.
Also, some themes or performance plugins can embed the external resources in a way that our plugin cannot detect. If this is the case for you, please let us know. We might be able to adjust this plugin, or provide you with instructions on how to configure the plugin/theme to be compatible with GDPR Cache Scripts & Styles.
Does it work on multisite networks?
Yes. When used in a multisite network, each site will start to create its own GDPR cache
- Each site in the network will start to download external files automatically.
- The local cache is stored in the respective sites “uploads” folder (there’s no overlapping between sites).
- Each site only maintains assets that are used by that site.
There is NO network-wide overview, or “Purge All Sites” function in the plugin.
Contributors & Developers
“GDPR Cache Scripts & Styles” is open source software. The following people have contributed to this plugin.Contributors
Interested in development?
- Fix: Black-List Google Maps JS source, otherwise Google Maps will not work anymore
Thanks for the feedback everyone! If you have any questions of encounter problems, let me know.
- Fix: Do not cache Stripe and PayPal scripts locally
- New: Added admin notice when incompatible plugin/theme configuration is detected
- New: Flush WP caches, when new external assets were downloaded
- Improve: Instantly start scanning for assets as soon as the plugin is activated
- Improve: A few minor fixes and improvements
- New: New garbage collection locates cached files that are not used for more than 30 days, and deletes them
- Improve: Asset list on options page displays staleness information (for garbage collection)
- Improve: Better detection of external URLs
- New: Display file-type of cached assets in the plugin’s option page
- New: Also in the plugin’s option page – allow sorting of the “Cached Assets” list
- Improve: Flush the plugins internal cache when opening the options page
- New: Replace external URLs found in Additional CSS (via Customizer)
- New: A “Purge Cache” button to the plugin options page
- New: Include a User-Agent when requesting remote files, to fetch WOFF2 fonts from Google instead of large TTF files
- Fix: Correctly determine asset type from file extension to avoid “tmp” types
- Improve: Color coding of the cache-status on the plugin options page
- Improve: Local cache 1files reflect the entire remote URL, to add transparency over the file contents
- Improve: Fix some typos and remove unused code
- Initial Release