Eine Anfahrtskarte von Google, ein YouTube-Video mit dem Imagefilm, ein Instagram-Feed, ein Chat-Fenster, ein Buchungstool für Termine. Solche Bausteine sind in wenigen Minuten eingebaut. Was dabei oft untergeht: Jeder davon lädt Code von einem fremden Server auf deine Seite. Wer die Risiken durch externe Widgets minimieren will, muss wissen, wo sie liegen, und braucht dann ein paar klare Regeln. Nach diesem Artikel weißt du, welche Widgets auf deiner Website kritisch sind, welche vier Risiken sie mitbringen und wie du sie in den Griff bekommst, ohne auf sinnvolle Funktionen zu verzichten.
Was ein externes Widget ist und warum es nicht harmlos ist
Ein externes Widget ist ein Inhalt oder eine Funktion, die nicht auf deinem eigenen Webspace liegt, sondern beim Aufruf der Seite von einem Drittanbieter nachgeladen wird. Typische Beispiele auf Firmenwebsites aus der Region:
- Google Maps als Anfahrtskarte
- YouTube- oder Vimeo-Videos
- Social-Media-Feeds und Teilen-Buttons von Instagram, Facebook oder LinkedIn
- Bewertungs-Widgets, die Google-Rezensionen oder ProvenExpert-Siegel anzeigen
- Live-Chat und Chatbots
- Terminbuchung und Reservierungstools
- Schriftarten von Google Fonts
- Tracking- und Analyse-Skripte, oft über den Google Tag Manager
Technisch sind das Skripte, iFrames oder Dateien, die der Browser deines Kunden beim Seitenaufruf direkt vom Anbieter holt, ohne dass der Kunde etwas davon merkt. Du hast auf diesen Code keinen Einfluss. Wenn der Anbieter ihn ändert, ändert sich deine Seite mit.
Die vier Risiken durch externe Widgets
Die Probleme lassen sich in vier Gruppen sortieren. Meist treffen mehrere gleichzeitig zu.
1. Datenschutz: Daten fließen, bevor jemand zugestimmt hat
Sobald ein Widget geladen wird, bekommt der Anbieter mindestens die IP-Adresse des Besuchers. Bei vielen Diensten kommen Cookies oder ähnliche Kennungen dazu, mit denen sich Nutzer über mehrere Seiten hinweg wiedererkennen lassen.
Genau dafür gibt es eine klare Regel. Der § 25 des Telekommunikation-Digitale-Dienste-Datenschutz-Gesetzes erlaubt das Speichern von Informationen auf dem Gerät des Nutzers und den Zugriff darauf nur mit Einwilligung. Ausgenommen ist nur, was für einen vom Nutzer ausdrücklich gewünschten Dienst unbedingt erforderlich ist. Eine Karte, die beim Öffnen der Kontaktseite automatisch lädt, fällt nicht darunter, weil der Besucher sie nicht angefordert hat.
Wie teuer das werden kann, zeigt ein Urteil des Landgerichts München I vom Januar 2022. Der Wissenschaftliche Dienst des Bundestags hat den Fall in einer Ausarbeitung zu Google Fonts zusammengefasst: Eine Website band Schriftarten direkt von Google-Servern ein, dabei wurde die IP-Adresse des Besuchers ohne Einwilligung an Google übertragen. Das Gericht sprach dem Besucher 100 Euro Schadensersatz zu. Nach dem Urteil kam eine Abmahnwelle, die viele kleine Betriebe getroffen hat.
2. Sicherheit: Fremder Code auf deiner Seite
Ein Skript, das von einem fremden Server geladen wird, läuft mit vollen Rechten auf deiner Seite. Es kann Formulareingaben lesen, Inhalte verändern oder weitere Skripte nachladen. Solange der Anbieter sauber arbeitet, passiert nichts. Wird sein Server aber gehackt oder das Skript manipuliert, ist deine Website betroffen, ohne dass sich bei dir irgendetwas geändert hat.
Die Mozilla-Dokumentation beschreibt dieses Szenario in ihrem Artikel zu Subresource Integrity: Erlangt ein Angreifer die Kontrolle über den Drittanbieter-Host, kann er beliebigen schädlichen Code in die Dateien einfügen oder sie komplett ersetzen. Das nennt man Supply-Chain-Angriff, also einen Angriff über die Lieferkette. Für dich als Betreiber gilt: Du haftest gegenüber deinen Kunden, auch wenn der Fehler beim Anbieter lag.
3. Geschwindigkeit: Jedes Widget kostet Ladezeit
Jedes externe Widget bedeutet mindestens eine zusätzliche Serververbindung, oft mehrere. Ein eingebettetes YouTube-Video lädt Skripte, Stylesheets, Vorschaubilder und Tracking-Code, bevor der Besucher überhaupt auf Play gedrückt hat. Ein Social-Media-Feed lädt Dutzende Bilder.
Google beschreibt das Problem in der Anleitung zum Laden von Drittanbieter-JavaScript auf web.dev sehr direkt: Solche Skripte können die Leistung der Seite spürbar bremsen, weil sie den Seitenaufbau blockieren, und sie verhalten sich unvorhersehbar. Langsame Seiten kosten Anfragen, besonders auf dem Handy mit schwacher Verbindung. Und weil Google die Ladezeit in die Bewertung einbezieht, kosten sie auch Sichtbarkeit.
4. Abhängigkeit: Der Anbieter entscheidet, nicht du
Das leiseste Risiko ist die Abhängigkeit. Der Anbieter ändert sein Design, und plötzlich passt das Widget nicht mehr zu deiner Seite. Er stellt den kostenlosen Tarif ein, und die Karte zeigt nur noch eine Fehlermeldung. Er wird übernommen und der Dienst verschwindet ganz. Wir haben das bei Kundenprojekten mehrfach erlebt, meist mit Bewertungs- und Feed-Widgets, die von einem Tag auf den anderen leer blieben. Niemand merkt es, bis ein Kunde anruft.
Bestandsaufnahme: Welche Widgets deine Seite wirklich lädt
Bevor du etwas änderst, brauchst du eine Liste. Die meisten Betreiber unterschätzen, wie viele Fremdverbindungen ihre Seite aufbaut, weil einiges über Plugins oder Themes mitkommt, ohne dass es jemand bewusst eingebaut hat.
Der einfachste Weg ist ein Bericht mit PageSpeed Insights von Google. Im Abschnitt zu Drittanbieter-Code steht, welche fremden Domains geladen werden und wie viel Zeit sie kosten. Alternativ zeigt der Netzwerk-Tab der Browser-Entwicklertools jede einzelne Verbindung.
Geh die Liste durch und beantworte für jeden Eintrag drei Fragen:
- Weiß ich, was das ist und wer es eingebaut hat?
- Braucht meine Seite es für eine Funktion, die Kunden wirklich nutzen?
- Wird es geladen, bevor der Besucher zugestimmt hat?
Was du nicht zuordnen kannst, ist ein Fall für die Wartung. Was niemand nutzt, fliegt raus.
Sechs Maßnahmen, um die Risiken durch externe Widgets zu minimieren
Die Reihenfolge ist bewusst gewählt. Die erste Maßnahme löst die meisten Probleme, die letzten sind Feinschliff.
1. Weglassen, was keinen Auftrag bringt
Der Instagram-Feed auf der Startseite sieht lebendig aus, aber er bringt selten eine Anfrage. Der Teilen-Button für Facebook wird auf Handwerker-Websites fast nie geklickt. Ein Live-Chat, den niemand im Betrieb beantwortet, verärgert mehr, als er hilft. Jedes Widget, das du entfernst, ist ein Risiko weniger und ein Stück Ladezeit gewonnen. Ein Link zu deinem Instagram-Profil erfüllt denselben Zweck wie der Feed, ohne fremden Code.
2. Lokal hosten, was sich lokal hosten lässt
Schriftarten sind das beste Beispiel. Google Fonts lassen sich herunterladen und auf dem eigenen Webspace ablegen. Die Seite sieht identisch aus, aber es fließt keine IP-Adresse mehr an Google. Das Gleiche gilt für Icon-Sets, JavaScript-Bibliotheken und Videos, die du auch auf dem eigenen Server ablegen kannst, wenn sie kurz sind. Bei einer WordPress-Seite ist das eine Sache von wenigen Minuten und gehört in jede WordPress-Wartung.
3. Erst nach Klick laden
Für Karten und Videos ist die Zwei-Klick-Lösung der Standard. Statt der echten Karte zeigt die Seite ein statisches Bild mit einem Hinweis: „Karte laden, dabei werden Daten an Google übertragen“. Erst wenn der Besucher klickt, wird das Widget geladen. Das erfüllt die Einwilligungspflicht, spart Ladezeit und kostet den Kunden einen einzigen Klick. Für YouTube gibt es zusätzlich die Einbettung über die Domain youtube-nocookie.com, die bis zum Abspielen keine Cookies setzt. Auch diese Variante gehört hinter den Klick.
Ein Consent-Banner allein reicht dafür nicht. Das Banner muss das Widget tatsächlich blockieren, bis die Zustimmung da ist. Viele Banner-Plugins zeigen nur den Hinweis an und laden im Hintergrund trotzdem alles.
4. Skripte asynchron und verzögert laden
Was bleibt, sollte den Seitenaufbau nicht blockieren. Google empfiehlt in der oben verlinkten Anleitung, Drittanbieter-Skripte immer mit den Attributen async oder defer einzubinden. Damit wartet der Browser nicht auf das Skript, sondern baut die Seite weiter auf und holt den Fremdcode nebenbei. Inhalte weiter unten auf der Seite werden erst geladen, wenn der Besucher dorthin scrollt. Für dich als Betreiber ist das eine Einstellungssache im Theme oder Plugin, die dein Webentwickler in kurzer Zeit erledigt.
5. Skripte gegen Manipulation absichern
Für Skripte, die du von einem fremden Server laden musst, gibt es zwei technische Schutzmechanismen. Subresource Integrity, kurz SRI, hinterlegt eine Prüfsumme der Datei. Ändert jemand das Skript auf dem fremden Server, verweigert der Browser das Laden. Eine Content Security Policy, kurz CSP, legt fest, von welchen Domains deine Seite überhaupt Code laden darf. Alles andere wird geblockt. Beides wird einmal auf dem Server eingerichtet und fängt den Fall ab, in dem der Anbieter gehackt wird.
6. Regelmäßig prüfen
Widgets ändern sich, Anbieter ändern ihre Bedingungen, Plugins bringen mit einem Update neue Fremdverbindungen mit. Die Bestandsaufnahme von oben ist deshalb keine einmalige Sache. Einmal im Quartal ein Blick in die Liste der geladenen Domains reicht aus, um Überraschungen früh zu bemerken. Wie das in eine laufende Betreuung passt, beschreiben wir im Artikel zur WordPress-Wartung.
Drei typische Fälle aus dem Betriebsalltag
Die Anfahrtskarte. Ein Malerbetrieb hat auf der Kontaktseite eine Google-Karte, die automatisch lädt. Lösung: statisches Kartenbild mit Adresse als Text, darunter ein Button „Route in Google Maps öffnen“, der auf Google Maps verlinkt. Kein Fremdcode mehr auf der Seite, und der Kunde kommt trotzdem mit einem Klick zur Navigation.
Das Imagevideo. Ein Dachdecker zeigt auf der Startseite ein YouTube-Video. Lösung: Vorschaubild auf dem eigenen Server, Video wird erst nach Klick über youtube-nocookie.com geladen. Die Startseite lädt deutlich schneller, das Video ist weiter da.
Die Bewertungen. Ein Steuerberater bindet ein Widget ein, das Google-Rezensionen live anzeigt. Lösung: Die drei besten Bewertungen als Text auf der Seite, mit Link zum Google-Unternehmensprofil. Wie du das Profil selbst gut pflegst, steht im Artikel zum Google-Unternehmensprofil. Bewertungen ändern sich nicht täglich, ein Update alle paar Monate reicht.
Fazit
Externe Widgets sind praktisch, aber jedes einzelne holt fremden Code auf deine Seite und bringt Risiken beim Datenschutz, bei der Sicherheit, bei der Ladezeit und bei der Abhängigkeit vom Anbieter mit. Die wirksamste Maßnahme ist die einfachste: weglassen, was keinen Auftrag bringt. Was bleibt, hostest du lokal oder lädst es erst nach Klick. Den Rest sichern SRI und CSP ab, und eine Prüfung pro Quartal hält die Liste sauber. Mehr zu den Grundlagen findest du im Artikel zur WordPress-Sicherheit.
Wenn du wissen willst, welche Fremdverbindungen deine Website gerade aufbaut, schreib uns eine kurze Nachricht. Wir schauen uns die Seite an und sagen dir, was raus kann und was besser eingebunden werden sollte.
FAQ
Muss ich Google Maps komplett von der Website entfernen?
Nein. Du solltest die Karte nur nicht automatisch laden. Entweder du zeigst ein statisches Bild mit einem Link zu Google Maps, oder du nutzt eine Zwei-Klick-Lösung, bei der die Karte erst nach Zustimmung des Besuchers erscheint. Beides ist rechtlich sauber und für den Kunden kaum ein Unterschied.
Reicht ein Cookie-Banner, um externe Widgets rechtlich abzusichern?
Nur, wenn das Banner die Widgets tatsächlich blockiert, bis der Besucher zugestimmt hat. Ein Banner, das nur informiert, während im Hintergrund alles lädt, hilft nicht. Prüfe das im Netzwerk-Tab der Browser-Entwicklertools: Vor dem Klick auf „Akzeptieren“ darf keine Verbindung zu Google, Meta oder anderen Anbietern auftauchen.
Wer kümmert sich um SRI und CSP, wenn ich keinen Entwickler habe?
Das ist eine Aufgabe für die technische Betreuung deiner Website. Beides wird einmal auf dem Server eingerichtet und muss nur angepasst werden, wenn neue Dienste dazukommen. Bei uns ist das Teil der Webseiten-Betreuung.
Quelle: https://www.contentmanager.de/cms/sicherheitsrisiko-externes-widget/
