Social Media Embeds & DSGVO: Facebook, Instagram, YouTube richtig einbinden
Warum Standard-Embeds von YouTube, Facebook und Instagram die DSGVO verletzen und wie du sie mit Two-Click-Lösungen, Facades und Shariff datenschutzkonform einbindest.
Fast jede Website bindet Social-Media-Inhalte ein: YouTube-Videos, Instagram-Posts, Facebook-Beiträge, Twitter/X-Tweets. Was viele nicht wissen: Bereits beim Laden der Seite werden durch Standard-Embeds personenbezogene Daten an die Plattform-Server übertragen — noch bevor der Nutzer den Inhalt anklickt oder überhaupt sieht. Dieser Artikel erklärt das Problem und zeigt konkrete, DSGVO-konforme Lösungen mit Code-Beispielen.
Warum Standard-Embeds problematisch sind
Wenn du ein YouTube-Video per <iframe> einbettest, passiert beim Seitenaufruf Folgendes:
- Der Browser des Besuchers sendet eine HTTP-Anfrage an
youtube.com(bzw. den jeweiligen Drittanbieter) - YouTube erhält die IP-Adresse des Besuchers
- YouTube erhält den Referrer (die URL deiner Seite)
- YouTube setzt Cookies im Browser des Besuchers (auch wenn dieser nicht eingeloggt ist)
- YouTube erhält den User-Agent und weitere Browser-Informationen
Das geschieht automatisch und sofort — ohne Einwilligung des Nutzers. Und es betrifft nicht nur YouTube, sondern alle Social-Media-Embeds.
Datenflüsse bei Standard-Embeds
| Plattform | Embed-Domain | Gesetzte Cookies | Datenempfänger | Server-Standort |
|---|---|---|---|---|
| YouTube | youtube.com | VISITOR_INFO1_LIVE, YSC, GPS | Google LLC | USA |
| YouTube (nocookie) | youtube-nocookie.com | CONSENT, YSC (reduziert) | Google LLC | USA |
| facebook.com | datr, sb, fr | Meta Platforms | USA | |
| instagram.com | ig_did, csrftoken, mid | Meta Platforms | USA | |
| Twitter/X | platform.twitter.com | guest_id, personalization_id | X Corp. | USA |
| TikTok | tiktok.com | tt_webid, ttwid | ByteDance | USA/Singapur |
| Vimeo | player.vimeo.com | vuid, player | Vimeo Inc. | USA |
Rechtliche Bewertung: Ohne vorherige Einwilligung des Nutzers verstößt das Laden dieser Embeds gegen:
- Art. 6 Abs. 1 DSGVO: Keine Rechtsgrundlage für die Datenübertragung
- Paragraph 25 TDDDG: Zugriff auf Endgerät-Informationen (Cookies) ohne Einwilligung
- Art. 44 ff. DSGVO: Drittlandtransfer in die USA ohne ausreichende Garantien (je nach DPF-Status)
YouTube DSGVO-konform einbinden
YouTube bietet den sogenannten “erweiterten Datenschutzmodus” an. Dieser reduziert die Datenerhebung, löst das Problem aber nicht vollständig.
Option 1: youtube-nocookie.com (Basisschutz)
<!-- Standard-Embed (NICHT DSGVO-konform): -->
<iframe src="https://www.youtube.com/embed/VIDEO_ID"></iframe>
<!-- Erweiterter Datenschutzmodus (besser, aber nicht ausreichend): -->
<iframe
src="https://www.youtube-nocookie.com/embed/VIDEO_ID"
title="Videotitel"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope"
allowfullscreen
loading="lazy"
></iframe>
Achtung: Auch youtube-nocookie.com überträgt die IP-Adresse an Google-Server. Cookies werden erst beim Abspielen gesetzt, aber der Seitenaufruf allein sendet bereits Daten. Das reicht für volle DSGVO-Konformität nicht aus.
Option 2: Lite YouTube Embed (empfohlen)
Die beste technische Lösung ist ein Facade-Element (Platzhalter), das erst nach Nutzerinteraktion den eigentlichen Player lädt. Das Open-Source-Projekt lite-youtube-embed von Paul Irish macht genau das:
<!-- Lite YouTube Embed (DSGVO-konform) -->
<link rel="stylesheet" href="/css/lite-yt-embed.css" />
<script src="/js/lite-yt-embed.js" defer></script>
<lite-youtube
videoid="VIDEO_ID"
playlabel="Video abspielen"
style="background-image: url('/images/video-placeholder.jpg');"
>
<p class="yt-consent-notice">
Mit dem Abspielen wird eine Verbindung zu YouTube hergestellt.
<a href="/datenschutz">Mehr erfahren</a>
</p>
<button type="button" class="lty-playbtn">
<span class="lyt-visually-hidden">Video abspielen</span>
</button>
</lite-youtube>
Vorteile:
- Kein Datentransfer an Google beim Seitenaufruf
- Thumbnail wird lokal gehostet (oder selbst vom Server geladen)
- Video lädt erst nach explizitem Klick
- Deutlich bessere Performance (kein iframe beim Seitenaufruf)
Option 3: Eigene Two-Click-Lösung
Für maximale Kontrolle kannst du eine eigene Two-Click-Lösung implementieren:
<div class="video-embed-placeholder" data-video-id="VIDEO_ID">
<div class="video-consent-overlay">
<img src="/images/video-thumbnail.jpg" alt="Video-Vorschau" loading="lazy" />
<div class="consent-text">
<p>Dieses Video wird von YouTube bereitgestellt. Beim Abspielen werden
Daten an YouTube (Google LLC, USA) übertragen.</p>
<button class="btn-load-video" onclick="loadYouTubeVideo(this)">
Video laden und abspielen
</button>
<a href="/datenschutz" class="privacy-link">Datenschutzerklärung</a>
</div>
</div>
</div>
<script>
function loadYouTubeVideo(button) {
const container = button.closest('.video-embed-placeholder');
const videoId = container.dataset.videoId;
const iframe = document.createElement('iframe');
iframe.src = `https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1`;
iframe.title = 'YouTube-Video';
iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope';
iframe.allowFullscreen = true;
iframe.loading = 'lazy';
container.innerHTML = '';
container.appendChild(iframe);
}
</script>
Facebook und Instagram Embeds
Facebook und Instagram bieten keinen “Datenschutzmodus” an. Jedes oEmbed überträgt sofort umfangreiche Daten an Meta.
Standard-Embed (problematisch)
<!-- Facebook-Post (NICHT DSGVO-konform): -->
<iframe
src="https://www.facebook.com/plugins/post.php?href=..."
width="500" height="600"
></iframe>
<!-- Instagram-Post (NICHT DSGVO-konform): -->
<blockquote class="instagram-media" data-instgrm-permalink="...">
</blockquote>
<script async src="//www.instagram.com/embed.js"></script>
DSGVO-konforme Lösung: Two-Click mit Vorschau
Da Facebook und Instagram keine datenschutzfreundliche Embed-Variante bieten, ist die Two-Click-Lösung der einzige DSGVO-konforme Weg. Das Prinzip ist identisch zur YouTube-Lösung oben:
- Statt des iframes einen Platzhalter mit Hinweistext anzeigen
- Button “Inhalt laden” mit Hinweis auf Datentransfer an Meta (USA)
- Erst nach Klick das eigentliche Embed-Script nachladen
- Optional: “Auswahl merken”-Checkbox, die einen First-Party-Cookie setzt
Twitter/X Embeds
Twitter/X-Embeds laden standardmäßig das Script platform.twitter.com/widgets.js, das Cookies setzt und Daten an X Corp. überträgt.
Empfohlene Lösungen
Option 1: Screenshot + Link. Die einfachste DSGVO-konforme Lösung: Erstelle einen Screenshot des Tweets und verlinke auf das Original. Ein <figure> mit <img> und <figcaption>-Link reicht aus. Kein JavaScript, kein Datentransfer, kein Cookie.
Option 2: Two-Click-Lösung. Wenn du das interaktive Widget brauchst, nutze eine Two-Click-Lösung nach dem gleichen Muster wie bei YouTube und Instagram.
Share-Buttons: Die Shariff-Lösung
Neben Embeds gibt es das Problem der Social-Media-Share-Buttons. Standard-Share-Buttons von Facebook, Twitter und LinkedIn laden beim Seitenaufruf Scripts, die Nutzerdaten übertragen — auch wenn der Button nie angeklickt wird.
Das Problem
<!-- Standard Facebook-Like-Button (NICHT DSGVO-konform): -->
<div class="fb-like" data-href="..." data-layout="button_count"></div>
<script async src="https://connect.facebook.net/de_DE/sdk.js"></script>
Dieses Script überträgt bei jedem Seitenaufruf Daten an Facebook — unabhängig davon, ob der Nutzer den Button nutzt.
Die Shariff-Lösung
Das Heise-Projekt “Shariff” bietet datenschutzkonforme Share-Buttons. Die Buttons sind reine HTML-Links, die erst bei Klick eine Verbindung zur Plattform herstellen:
<!-- Shariff Share-Buttons (DSGVO-konform) -->
<div class="shariff"
data-services="["facebook","twitter","linkedin","mail"]"
data-lang="de"
data-theme="standard"
data-orientation="horizontal"
></div>
<script src="/js/shariff.min.js"></script>
Wie Shariff funktioniert:
- Die Share-Buttons werden als einfache HTML-Elemente gerendert
- Kein Script der Social-Media-Plattformen wird geladen
- Erst beim Klick öffnet sich ein neues Fenster mit der Share-URL der Plattform
- Die Share-Zähler werden optional über ein serverseitiges Backend abgerufen (ohne Client-Cookies)
Alternative: Einfache Share-Links
Noch einfacher als Shariff sind reine HTML-Links zu den Share-Endpoints der Plattformen (facebook.com/sharer/sharer.php?u=URL, twitter.com/intent/tweet?url=URL, etc.). Kein JavaScript, kein Cookie, kein Datentransfer beim Seitenaufruf. Der Nutzer entscheidet aktiv, ob er teilen möchte.
Zusammenfassung: Alle Embeds im Überblick
| Plattform | Standard-Embed | DSGVO-konform? | Empfohlene Lösung |
|---|---|---|---|
| YouTube | <iframe src="youtube.com/embed/..."> | Nein | Lite YouTube Embed oder Two-Click |
| YouTube (nocookie) | <iframe src="youtube-nocookie.com/embed/..."> | Teilweise | Two-Click zusätzlich empfohlen |
| Facebook Post | facebook.com/plugins/post.php | Nein | Two-Click-Platzhalter |
instagram.com/embed.js | Nein | Two-Click-Platzhalter | |
| Twitter/X | platform.twitter.com/widgets.js | Nein | Screenshot + Link oder Two-Click |
| TikTok | tiktok.com/embed.js | Nein | Two-Click-Platzhalter |
| Vimeo | player.vimeo.com/video/... | Nein | Two-Click (Vimeo bietet dnt=1 Parameter) |
| Share-Buttons | Plattform-SDKs | Nein | Shariff oder reine Share-Links |
Integration mit Consent-Management
Die Two-Click-Lösung lässt sich elegant mit einem Cookie-Banner kombinieren. Wenn der Nutzer im Banner bereits die Kategorie “Marketing” akzeptiert hat, können Embeds direkt geladen werden — ohne zweiten Klick. Der Compliso Cookie-Banner bietet dafür eine JavaScript-API: window.ComplisoConsent.hasConsent('marketing') prüft den aktuellen Consent-Status, und das Event ComplisoConsentChanged reagiert auf Änderungen in Echtzeit.
Praxis-Checkliste: Social Media Embeds
- Alle Standard-Embeds (YouTube, Facebook, Instagram, Twitter) identifiziert?
- Two-Click-Lösung oder Facade-Element für jedes Embed implementiert?
- YouTube-Videos mindestens auf youtube-nocookie.com umgestellt?
- Social-Media-Share-Buttons durch Shariff oder reine Links ersetzt?
- Consent-Integration: Embeds laden automatisch bei vorhandenem Consent?
- Datenschutzerklärung aktualisiert (alle Embed-Plattformen mit Zweck, Cookies, Drittlandtransfer)?
- Hinweistexte bei Platzhaltern verständlich formuliert?
- Barrierefreiheit: Platzhalter per Tastatur bedienbar, Alt-Texte vorhanden?
- Performance: Vorschaubilder lokal gehostet, lazy-loaded?
- Regelmäßiger Scan auf neue oder unbekannte Embeds?
Problematische Embeds automatisch erkennen
Der Compliso Scanner erkennt automatisch alle Social-Media-Embeds und externen Verbindungen auf deiner Website. Er prüft dabei:
- Welche Drittanbieter-Verbindungen beim Seitenaufruf aufgebaut werden
- Welche Cookies durch Embeds gesetzt werden
- Ob Embeds vor der Einwilligung geladen werden
- Ob youtube-nocookie.com statt youtube.com verwendet wird
So findest du schnell heraus, welche Embeds auf deiner Seite problematisch sind — auch solche, die durch Plugins, Theme-Einstellungen oder Content-Editoren eingebettet wurden, ohne dass du es bemerkt hast.
Scanne deine Website jetzt kostenlos und finde alle problematischen Embeds auf einen Blick. Oder kombiniere den Scanner mit dem Compliso Cookie-Banner, der Embeds automatisch blockiert, bis der Nutzer einwilligt.
Deine Website DSGVO-konform machen?
Compliso prüft deine Website automatisch auf Cookies, Tracker, Dark Patterns und Accessibility-Probleme.