Embed Privacy


Content embedded from external sites such as YouTube or Twitter is loaded immediately when visitors access your site. Embed Privacy addresses this issue and prevents the loading of these contents until the visitor decides to allow loading of external content.
But Embed Privacy not only protects your visitor’s privacy but also makes your site load faster.

All embeds will be replaced by placeholders, ready for you to apply style as you wish. With only a couple of lines of CSS.

By clicking on the placeholder the respective content will be reloaded.


  • Add embeds using the classic editor or the block editor's embed blocks.
  • Embed Privacy will add an overlay to supported embeds automatically.
  • You can customize the overlays for each service individually.
  • Embed Privacy can deliver embedded Tweets locally without 3rd party scripts or tracking.


  1. Upload the plugin files to the /wp-content/plugins/embed-privacy directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ’Plugins’ screen in WordPress.
  3. Embedded content will automatically be replaced by a placeholder and can be loaded on demand by your visitors. There are no additional settings.
  4. To allow users to opt-out of embed providers that they set to always active, place the shortcode [embed_privacy_opt_out] into your privacy policy.

Vanliga frågor

Can Embed Privacy keep external services from tracking me/my visitors?

Yes. As long as you don’t opt in to load external content, you/your visitors can’t be tracked by these services.

Does Embed Privacy make embedding content privacy-friendly?

The embedding process itself will be privacy-friendly with Embed Privacy. That means, that no third-party embed provider can track users without their explicit consent by clicking on the overlay to allow the embed to be loaded. However, to make sure everything is fine you need to expand your privacy policy for each embed provider you’re using or you want to use because you need to specify, where data will be sent to and what happens to them.

Does Embed Privacy support the Gutenberg editor?

Sure thing! We enjoy playing with the new WordPress editor and developed Embed Privacy with Gutenberg in mind, the plugin will work no matter the editor you use.

Which embeds are currently supported?

We currently support all oEmbed providers known to WordPress core by default. Want to know about them? Here you go: Amazon Kindle, Animoto, Cloudup, DailyMotion, Facebook, Flickr, Funny Or Die, Imgur, Instagram, Issuu, Kickstarter, Meetup, Mixcloud, Photobucket, Polldaddy.com, Reddit, ReverbNation, Scribd, Sketchfab, SlideShare, SmugMug, SoundCloud, Speaker Deck, Spotify, TikTok, TED, Tumblr, Twitter, VideoPress, Vimeo, WordPress.org, WordPress.tv, YouTube.

Since version 1.2.0, you can also add custom embed providers by going to Settings > Embed Privacy > Manage embeds. Here you can also modify any existing embed provider, change its logo, add a background image, change the text displaying on the embed or disable the embed provider entirely.

Developers: How to use Embed Privacy’s methods for custom content?

Since version 1.1.0 you can now use our mechanism for content we don’t support in our plugin. You can do it the following way:

 * Replace specific content with the Embed Privacy overlay of type 'google-maps'.
 * @param   string      $content The content to replace
 * @return  string The updated content
function prefix_replace_content_with_overlay( $content ) {
    // check for Embed Privacy
    if ( ! class_exists( 'epiphyt\Embed_Privacy\Embed_Privacy' ) ) {
        return $content;

    // get Embed Privacy instance
    $embed_privacy = epiphyt\Embed_Privacy\Embed_Privacy::get_instance();

    // check if provider is always active; if so, just return the content
    if ( ! $embed_privacy->is_always_active_provider( 'google-maps' ) ) {
        // replace the content with the overlay
        $content = $embed_privacy->get_output_template( 'Google Maps', 'google-maps', $content );
        // enqueue assets

    return $content;

Can users opt-out of already opted in embed providers?

Yes! You can use the shortcode [embed_privacy_opt_out] to add a list of embed providers anywhere you want (recommendation: add it to your privacy policy) to allow your users to opt-out.

What parameters can be used in the shortcode?

The shortcode [embed_privacy_opt_out] can be used to let users opt-out of embed providers that have been set to be always active by the user. It can have the following attributes:

headline – Add a custom headline (default: Embed providers)

[embed_privacy_opt_out headline="My custom headline"]

subline – Add a custom subline (default: Enable or disable embed providers globally. By enabling a provider, its embedded content will be displayed directly on every page without asking you anymore.)

[embed_privacy_opt_out subline="My custom subline"]

show_all – Whether to show all available embed providers or just the ones the user opted in (default: false)

[embed_privacy_opt_out show_all="1"]

You can also combine all of these attributes:

[embed_privacy_opt_out headline="My custom headline" subline="My custom subline" show_all="1"]

Is this plugin compatible with my caching plugin?

If you’re using a caching plugin, make sure you enable the ”JavaScript detection for active providers” in Settings > Embed Privacy > JavaScript detection. Then, the plugin is fully compatible with your caching plugin.

Who are you, folks?

We are Epiphyt, your friendly neighborhood WordPress plugin shop from southern Germany.


23 april 2021
I'm surprised this doesn't have more downloads yet! It's a really great and simple plugin that just works. Very useful for getting your site to follow GDPR or other privacy regulations. I used it for an otherwise cookie-less website and now I don't need to shove a Cookie-Manager in every visitors face. I love that it keeps the true spirit of WordPress and doesn't spam the dashboard with a thousand upsells or is a gigantic bloated suite of endless features you don't need. Thanks a lot Epiphyt!
22 mars 2021
Very useful plugin if you want to make your site safe against unwanted tracking and protect your readers
12 juli 2019
This plugin effectively blocks third party snoopers in embeds on my site, while still allowing the users the choice to activate the embeds with a click. I hope the developers will keep maintaining this important plugin!
Läs alla 7 betyg

Bidragsgivare och utvecklare

”Embed Privacy” är programvara med öppen källkod. Följande personer har bidragit till detta tillägg.

Bidragande personer

”Embed Privacy” har översatts till 3 språk. Tack till översättarna för deras bidrag.

Översätt ”Embed Privacy” till ditt språk.

Intresserad av programutveckling?

Läs programkoden, kika på SVN-filförvaret eller prenumerera på utvecklarloggen via RSS.



  • Fixed enabling multiple YouTube videos in Elementor
  • Fixed displaying content if the page contains an always active provider


  • Fixed functionality in Elementor
  • Fixed custom embed provider output
  • Fixed replacing content in shortcodes multiple times
  • Fixed checking for theme/template


  • Fixed deleted meta fields if you put an embed provider in trash and restore it afterwards
  • Fixed Embed Privacy sometimes trying to replace an embed twice
  • Fixed an error that may occur if Embed Privacy tries to replace an embed that doesn’t need to be replaced
  • Fixed checking for local domain if WordPress itself is located in a sub-domain
  • Fixed always enable YouTube within Divi
  • Fixed overlay line height in Divi


  • Improved mobile design for responsive embeds
  • Fixed centering for non-responsive embeds
  • Fixed disabled embed content from preventing interactions with the text below the overlay


  • Fixed general activation error


  • Fixed a fatal error on uninstallation on non-multisite
  • Fixed activating via WP-CLI
  • Fixed deleting an option on uninstallation


  • Added local tweets without overlay
  • Added option to preserve data on uninstall
  • Added compatibility with theme Astra
  • Added filter embed_privacy_markup for filtering the whole markup of an embed overlay
  • Added proper support for embeds on the current domain
  • Added support for embeds on other elements than embed, iframe and object
  • Enqueue assets only if needed
  • Removed images from media (which had been added in version 1.2.0) and use fallback images for default embed providers
  • Improved regular expression for Google Maps
  • Improved texts for clarity
  • Fixed visibility of custom post type
  • Fixed network-wide activation
  • Fixed clearing oEmbed cache


  • Added a check if a migration is already running
  • Fixed a bug where the page markup could be changed unexpectedly
  • <object> elements are now replaced correctly
  • Added a missing textdomain to a string
  • Excluded local embeds (with the same domain)
  • Fixed Amazon Kindle regex being too greedy


  • Fixed a bug where the page markup could be changed unexpectedly
  • Fixed a warning if an embed provider has no regular expressions
  • Improved migrations of embed provider metadata to make sure they have been added to the database


  • Added support for managing embeds (add/remove/edit/disable)
  • Added support for caching plugins by adding a JavaScript detection for always active embed providers
  • Added CSS classes that indicate the current state of the embed (is-disabled/is-enabled)
  • Added shortcode [embed_privacy_opt_out] to allow users to opt-out/in
  • Fixed responsive design if the embed added an own width


  • Changed provider name from Polldaddy to Crowdsignal
  • Removed provider Hulu


  • Fixed a possible difference in the used class name of the embed provider in HTML and CSS


  • Removed provider CollegeHumor
  • Fixed a bug with the automatic addition of paragraphs


  • Added option to allow all embeds by one provider
  • Added provider TikTok, introduced in WordPress 5.4
  • Added support for Google Maps iframes
  • Added URL rewrite to youtube-nocookie.com
  • Added option to save user selection per embed provider
  • Added provider logo to our placeholder
  • Added option to filter our placeholders markup
  • Added support for ’alignwide’ and ’alignfull’ Gutenberg classes
  • Added support for using our embedding overlay mechanism for external developers
  • Improved our placeholder markup to be actually semantic
  • Changed .embed- classes to .embed-privacy-
  • Fixed some embed providers that use custom z-index, which results in the embedded content being above the overlay
  • Fixed typos


  • Improved compatibility with Autoptimize
  • Improved compatibility with AMP
  • Fix issue with Slideshare causing wrong (generic) placeholders


  • Fixed support for PHP 5.6


  • Initial release