Cookie-Hinweise: Bewährte Praktiken für Entwickler

Leistung

Cookie-Hinweise können sich erheblich auf die Seitenleistung auswirken, da sie in der Regel zu einem frühen Zeitpunkt des Seitenladevorgangs geladen werden, allen Benutzern angezeigt werden und möglicherweise das Laden von Anzeigen und anderen Seiteninhalten beeinflussen.

Hier erfahren Sie, wie sich Cookie-Hinweise auf Web Vitals-Metriken auswirken können:

  • Größtes inhaltsreiches Bild (LCP): Die meisten Cookie-Zustimmungshinweise sind relativ klein und enthalten daher normalerweise nicht das LCP-Element einer Seite. Dies kann jedoch vorkommen - insbesondere auf mobilen Geräten. Auf mobilen Geräten nimmt ein Cookie-Hinweis normalerweise einen größeren Teil des Bildschirms ein. Dies geschieht in der Regel, wenn ein Cookie-Hinweis einen großen Textblock enthält (auch Textblöcke können LCP-Elemente sein).
  • Interaktion zum nächsten Bild (INP): Cookie-Hinweise können oft eine Ursache für hohe INP-Werte sein, da sie in der Regel eine Menge Skripte von Drittanbietern hinzufügen, wenn sie akzeptiert werden. Das Hauptproblem besteht oft darin, die Interaktion "Akzeptieren" auszuführen, da dies zu einem hohen Verarbeitungsaufwand führt, um diese Skripte von Drittanbietern auf einmal hinzuzufügen. Lesen Sie den Abschnitt Best Practices weiter unten, um dieses Problem zu entschärfen.
  • Kumulative Layout-Verschiebung (CLS): Cookie-Einverständniserklärungen sind eine sehr häufige Quelle für Layout-Verschiebungen.
    Im Allgemeinen können Sie davon ausgehen, dass ein Cookie-Hinweis von Drittanbietern einen größeren Einfluss auf die Leistung hat als ein Cookie-Hinweis, den Sie selbst erstellen. Dies ist kein Problem, das nur bei Cookie-Hinweisen auftritt, sondern liegt vielmehr in der Natur von Skripten von Drittanbietern im Allgemeinen.

Bewährte Praktiken

Die bewährten Praktiken in diesem Abschnitt konzentrieren sich auf Cookie-Hinweise für Dritte. Einige, aber nicht alle dieser bewährten Verfahren sind auch auf Cookie-Hinweise für Erstanbieter anwendbar.

Verstehen Sie die INP-Auswirkungen von Cookie-Hinweisen

Wie bereits erwähnt, ist die Schaltfläche "Akzeptieren" häufig eine besondere Ursache für INP-Probleme, da beim Anklicken dieser Schaltfläche eine große Menge an Datenverarbeitung stattfindet.

Das Chrome-Team hat mit einer Reihe von Consent Management Platforms (CMP) zusammengearbeitet, um nach dem Anklicken der Schaltfläche Akzeptieren eine schnelle Bestätigung durch den Browser zu ermöglichen. Sehen Sie sich diese PubTech-Fallstudie als Beispiel an.

Wenn Ihre CMP davon betroffen ist, sollten Sie sich mit ihr in Verbindung setzen, um herauszufinden, ob sie auf ähnliche Weise INP-Probleme für Websites vermeiden kann, die sie einbetten. Im Artikel Optimize Long Tasks finden Sie eine Anleitung zur Ausbeutungstaktik.

Javascript für Cookie-Hinweise asynchron laden

Skripte für Cookie-Hinweise sollten asynchron geladen werden. Fügen Sie dazu das Attribut async zum Skript-Tag hinzu. Skripte, die nicht asynchron sind, blockieren den Browser-Parser.

<script src="https://cookie-notice.com/script.js" async>
Hinweis: Wenn Sie synchrone Skripte verwenden müssen (z. B. sind einige Cookie-Hinweise auf synchrone Skripte angewiesen, um das Blockieren von Cookies zu implementieren), sollten Sie sicherstellen, dass diese Anfrage so schnell wie möglich geladen wird. Eine Möglichkeit, dies zu erreichen, ist die Verwendung von Ressourcen-Hinweisen.

Skripte für Cookie-Hinweise direkt laden

Skripte für Cookie-Hinweise sollten "direkt" geladen werden, indem das Skript-Tag in den HTML-Code des Hauptdokuments eingefügt wird - und nicht durch einen Tag-Manager oder ein anderes Skript geladen werden. Die Verwendung eines Tag-Managers oder eines sekundären Skripts zum Einfügen des Skripts für den Cookie-Hinweis verzögert das Laden des Skripts für den Cookie-Hinweis: Es verdeckt das Skript vor dem Lookahead-Parser des Browsers und verhindert, dass das Skript vor der Ausführung von JavaScript geladen wird.

Stellen Sie frühzeitig eine Verbindung mit dem Ursprung des Cookie-Hinweises her

Alle Websites, die ihre Skripte für Cookie-Hinweise von einem Drittanbieter laden, sollten entweder die Ressourcenhinweise dns-prefetch oder preconnect verwenden, um eine frühzeitige Verbindung mit dem Ursprung herzustellen, der die Ressourcen für Cookie-Hinweise hostet.

<link rel="preconnect" href="https://cdn.cookie-notice.com/">
Hinweis: Es ist üblich, dass Cookie-Hinweise Ressourcen von mehreren Ursprüngen laden, z. B. Ressourcen von www.cookie-notice.com und cdn.cookie-notice.com. Getrennte Ursprünge erfordern getrennte Verbindungen und daher getrennte Ressourcenhinweise.

Cookie-Hinweise nach Bedarf vorladen

Für einige Websites wäre es von Vorteil, wenn sie ihr Skript für Cookie-Hinweise mit dem Hinweis preload laden könnten. Der Preload-Hinweis informiert den Browser, eine frühzeitige Anfrage für die angegebene Ressource zu initiieren.

<link rel="preload" href="https://www.cookie-notice.com/cookie-script.js">

preload ist am leistungsfähigsten, wenn seine Verwendung auf den Abruf einiger wichtiger Ressourcen pro Seite beschränkt ist. Die Nützlichkeit des Vorladens des Skripts für den Cookie-Hinweis hängt also von der jeweiligen Situation ab.

Achten Sie bei der Gestaltung von Cookie-Hinweisen auf Leistungseinbußen

Die Anpassung des Aussehens eines Cookie-Hinweises eines Drittanbieters kann zusätzliche Kosten für die Leistung mit sich bringen. Beispielsweise können Cookie-Hinweise von Drittanbietern nicht immer dieselben Ressourcen (z. B. Web-Schriftarten) wiederverwenden, die an anderer Stelle auf der Seite verwendet werden. Außerdem neigen die Cookie-Hinweise von Drittanbietern dazu, das Styling am Ende langer Anfrageketten zu laden. Um Überraschungen zu vermeiden, sollten Sie darauf achten, wie Ihr Cookie-Hinweis das Styling und die zugehörigen Ressourcen lädt und anwendet.

Vermeiden Sie Layout-Verschiebungen

Dies sind einige der häufigsten Probleme mit Layoutverschiebungen im Zusammenhang mit Cookie-Hinweisen:

  • Top-of-Screen-Cookie-Hinweise: Cookie-Hinweise am oberen Rand des Bildschirms sind eine sehr häufige Ursache für Layoutverschiebungen. Wenn ein Cookie-Hinweis in das DOM eingefügt wird, nachdem die umgebende Seite bereits gerendert wurde, verschiebt er die darunter liegenden Seitenelemente weiter nach unten auf der Seite. Diese Art von Layoutverschiebung kann vermieden werden, indem im DOM Platz für den Einwilligungshinweis reserviert wird. Wenn dies keine praktikable Lösung ist - z. B. wenn die Abmessungen Ihres Cookie-Hinweises je nach Land variieren -, sollten Sie die Anzeige des Cookie-Hinweises in einer klebrigen Fußzeile oder einem Modal in Betracht ziehen. Da diese beiden Alternativen den Cookie-Hinweis als "Overlay" über dem Rest der Seite anzeigen, sollte der Cookie-Hinweis beim Laden keine Inhaltsverschiebungen verursachen.
  • Animationen: Viele Cookie-Hinweise verwenden Animationen - das "Einblenden" eines Cookie-Hinweises ist beispielsweise ein gängiges Designmuster. Je nachdem, wie diese Effekte implementiert sind, können sie Layout-Verschiebungen verursachen. Weitere Informationen finden Sie unter Debuggen von Layout-Verschiebungen.
  • Schriftarten: Spät ladende Schriftarten können das Rendern blockieren oder Layoutverschiebungen verursachen. Dieses Phänomen tritt vor allem bei langsamen Verbindungen auf.


Erweiterte Ladeoptimierungen

Diese Techniken sind aufwändiger zu implementieren, können aber das Laden von Skripten für Cookie-Hinweise weiter optimieren:

  • Das Zwischenspeichern und Bereitstellen von Skripten für Cookie-Hinweise von Drittanbietern von Ihren eigenen Servern aus kann die Bereitstellungsgeschwindigkeit dieser Ressourcen verbessern.
  • Die Verwendung von Service Workern ermöglicht Ihnen eine bessere Kontrolle über das Abrufen und Zwischenspeichern von Skripten Dritter, wie z. B. Skripten für Cookie-Hinweise.

Leistungsmessung

Cookie-Hinweise können sich auf Leistungsmessungen auswirken. In diesem Abschnitt werden einige dieser Auswirkungen und Techniken zu deren Abmilderung erörtert.

Echte Benutzerüberwachung (RUM)

Einige Analyse- und RUM-Tools verwenden Cookies, um Leistungsdaten zu erfassen. Wenn ein Benutzer die Verwendung von Cookies ablehnt, können diese Tools keine Leistungsdaten erfassen.

Sites sollten sich dieses Phänomens bewusst sein; es lohnt sich auch, die Mechanismen zu verstehen, die Ihr RUM-Tooling zur Datenerfassung verwendet. Für die typische Website ist diese Diskrepanz jedoch wahrscheinlich kein Grund zur Beunruhigung, wenn man die Richtung und das Ausmaß der Datenverschiebung bedenkt. Die Verwendung von Cookies ist keine technische Voraussetzung für die Leistungsmessung. Die JavaScript-Bibliothek web-vitals ist ein Beispiel für eine Bibliothek, die keine Cookies verwendet.

Je nachdem, wie Ihre Website Cookies zur Erfassung von Leistungsdaten verwendet (d. h. ob die Cookies personenbezogene Daten enthalten), und je nach der betreffenden Gesetzgebung unterliegt die Verwendung von Cookies zur Leistungsmessung möglicherweise nicht denselben gesetzlichen Anforderungen wie einige der Cookies, die auf Ihrer Website für andere Zwecke verwendet werden, z. B. Werbe-Cookies. Einige Websites entscheiden sich dafür, Leistungs-Cookies als separate Cookie-Kategorie auszuweisen, wenn sie die Zustimmung der Nutzer einholen.

Synthetische Überwachung

Ohne benutzerdefinierte Konfiguration messen die meisten synthetischen Tools (wie z. B. Lighthouse und WebPageTest) nur die Erfahrung eines Erstbenutzers, der nicht auf eine Cookie-Zustimmungsmeldung reagiert hat. Bei der Erfassung von Leistungsdaten müssen jedoch nicht nur Variationen im Cache-Zustand (z. B. ein Erstbesuch gegenüber einem wiederholten Besuch) berücksichtigt werden, sondern auch Variationen im Cookie-Zustand - akzeptiert, abgelehnt oder nicht beantwortet.

Testen von Cookie-Hinweisen mit WebPageTest

In den folgenden Abschnitten werden WebPageTest- und Lighthouse-Einstellungen besprochen, die bei der Einbeziehung von Cookie-Hinweisen in Leistungsmessungs-Workflows hilfreich sein können. Cookies und Cookie-Hinweise sind jedoch nur einer von vielen Faktoren, die sich in Laborumgebungen nur schwer perfekt simulieren lassen. Aus diesem Grund ist es wichtig, RUM-Daten zum Eckpfeiler Ihres Leistungs-Benchmarkings zu machen, anstatt synthetische Tools zu verwenden.

Skripting verwenden

Sie können Skripte verwenden, damit ein WebPageTest das Cookie-Einwilligungsbanner "anklickt", während er eine Aufzeichnung erfasst.

Fügen Sie ein Skript hinzu, indem Sie auf die Registerkarte Skript gehen. Das folgende Skript navigiert zu der zu testenden URL und klickt dann auf das DOM-Element mit der id=cookieButton.

combineSteps
navigate    %URL%
clickAndWait    id=cookieButton

Wenn Sie dieses Skript verwenden, beachten Sie bitte Folgendes:

  • combineSteps weist WebPageTest an, die Ergebnisse der folgenden Skriptschritte in einem einzigen Satz von Spuren und Messungen zu "kombinieren". Die Ausführung dieses Skripts ohne combineSteps kann ebenfalls nützlich sein - getrennte Spuren machen es einfacher zu sehen, ob Ressourcen vor oder nach der Cookie-Akzeptanz geladen wurden.
  • %URL% ist eine WebPageTest-Konvention, die sich auf die URL bezieht, die getestet wird.
  • clickAndWait weist WebPageTest an, auf das durch attribute=value angegebene Element zu klicken und auf den Abschluss der anschließenden Browseraktivität zu warten. Es folgt das Format clickAndWait attribute=Value.

Wenn Sie dieses Skript richtig konfiguriert haben, sollte der von WebPageTest aufgenommene Screenshot keinen Cookie-Hinweis zeigen (der Cookie-Hinweis wurde akzeptiert).

Weitere Informationen über WebPageTest-Skripte finden Sie in der WebPageTest-Dokumentation.

Cookies setzen

Um WebPageTest mit einem gesetzten Cookie auszuführen, gehen Sie auf die Registerkarte Erweitert und fügen Sie die Cookie-Kopfzeile in das Feld Benutzerdefinierte Kopfzeilen ein:

Ändern des Testortes

Um den von WebPageTest verwendeten Testort zu ändern, klicken Sie auf der Registerkarte Erweiterte Tests auf die Dropdown-Liste Testort.

Testen von Cookie-Hinweisen mit Lighthouse

Das Setzen von Cookies bei einem Lighthouse-Lauf kann als Mechanismus dienen, um eine Seite in einen bestimmten Zustand zu versetzen, damit sie von Lighthouse getestet werden kann. Das Cookie-Verhalten von Lighthouse variiert leicht je nach Kontext (DevTools, CLI oder PageSpeed Insights).

DevTools

Cookies werden nicht gelöscht, wenn Lighthouse von DevTools aus gestartet wird. Andere Speichertypen werden jedoch standardmäßig gelöscht. Dieses Verhalten kann mit der Option Speicher löschen im Lighthouse-Einstellungsfenster geändert werden.

CLI

Die Ausführung von Lighthouse über die Befehlszeilenschnittstelle verwendet eine neue Chrome-Instanz, so dass standardmäßig keine Cookies gesetzt sind. Um Lighthouse über die CLI mit einem bestimmten Cookie zu starten, verwenden Sie den folgenden Befehl:

lighthouse <url> --extra-headers "{\"Cookie\":\"cookie1=abc; cookie2=def; \_id=foo\"}"

Weitere Informationen zum Setzen von benutzerdefinierten Anfrage-Headern in Lighthouse CLI finden Sie unter Lighthouse auf authentifizierten Seiten ausführen.

PageSpeed-Insights

Die Ausführung von Lighthouse über PageSpeed Insights verwendet eine neue Chrome-Instanz und setzt keine Cookies. PageSeed Insights kann nicht so konfiguriert werden, dass bestimmte Cookies gesetzt werden.

Benutzerfreundlichkeit

Die Benutzererfahrung (UX) verschiedener Cookie-Zustimmungshinweise ist in erster Linie das Ergebnis von zwei Entscheidungen: die Position des Cookie-Hinweises innerhalb der Seite und das Ausmaß, in dem der Benutzer die Verwendung von Cookies durch eine Website anpassen kann. In diesem Abschnitt werden mögliche Ansätze für diese beiden Entscheidungen erörtert.

Achtung! Die Benutzerfreundlichkeit von Cookie-Hinweisen wird oft stark von der Gesetzgebung beeinflusst, die je nach Land sehr unterschiedlich sein kann. Daher kann es sein, dass einige der in diesem Abschnitt erörterten Entwurfsmuster für Ihre spezielle Situation nicht relevant sind. Dieses Dokument sollte nicht als Ersatz für eine Rechtsberatung angesehen werden.

Wenn Sie über mögliche Designs für Ihren Cookie-Hinweis nachdenken, sollten Sie einige Dinge bedenken:

  • UX: Ist dies eine gute Benutzererfahrung? Wie wirkt sich dieses spezielle Design auf bestehende Seitenelemente und Benutzerabläufe aus?
  • Geschäftlich: Was ist die Cookie-Strategie Ihrer Website? Welche Ziele verfolgen Sie mit dem Cookie-Hinweis?
  • Rechtlich: Entspricht dies den rechtlichen Anforderungen?
  • Technisch: Wie hoch ist der Aufwand für die Implementierung und Pflege? Wie schwierig wäre es, sie zu ändern?

Platzierung

Cookie-Hinweise können als Kopfzeile, Inline-Element oder Fußzeile angezeigt werden. Sie können auch über dem Seiteninhalt in einem Modal angezeigt werden oder als Interstitial dienen.

Cookie-Hinweise in der Kopf- und Fußzeile und in der Zeile

Cookie-Hinweise werden in der Regel in der Kopf- oder Fußzeile platziert. Von diesen beiden Optionen ist die Platzierung in der Fußzeile im Allgemeinen vorzuziehen, da sie unaufdringlich ist, nicht mit Werbebannern oder Benachrichtigungen um Aufmerksamkeit konkurriert und in der Regel keine CLS verursacht. Darüber hinaus ist dies ein üblicher Ort für die Platzierung von Datenschutzrichtlinien und Nutzungsbedingungen.

Inline-Cookie-Hinweise sind zwar eine Option, lassen sich aber nur schwer in bestehende Benutzeroberflächen integrieren und sind daher unüblich.

Modals

Modals sind Cookie-Zustimmungshinweise, die oben auf dem Seiteninhalt angezeigt werden. Modals können je nach ihrer Größe ganz unterschiedlich aussehen und funktionieren.

Kleinere Modals, die nur teilweise auf dem Bildschirm angezeigt werden, können eine gute Alternative für Websites sein, die Schwierigkeiten haben, Cookie-Hinweise so zu implementieren, dass das Layout nicht verändert wird.

Andererseits sollten große Modals, die den Großteil des Seiteninhalts verdecken, mit Vorsicht eingesetzt werden. Insbesondere bei kleineren Websites kann es vorkommen, dass die Benutzer eher abspringen, als den Cookie-Hinweis einer unbekannten Website mit verdecktem Inhalt zu akzeptieren. Obwohl es sich nicht unbedingt um synonyme Konzepte handelt, sollten Sie, wenn Sie die Verwendung eines bildschirmfüllenden Modals zur Cookie-Zustimmung in Erwägung ziehen, die Gesetzgebung zu Cookie-Walls kennen.

Konfigurierbarkeit

Die Schnittstellen für den Cookie-Hinweis geben den Nutzern in unterschiedlichem Maße die Kontrolle darüber, welche Cookies sie akzeptieren.

Keine Konfigurierbarkeit

Diese Cookie-Banner im Stil eines Hinweises bieten den Nutzern keine direkten UX-Kontrollen für die Ablehnung von Cookies. Stattdessen enthalten sie in der Regel einen Link zu den Cookie-Richtlinien der Website, der den Nutzern Informationen zur Verwaltung von Cookies über ihren Webbrowser bietet. Diese Hinweise enthalten in der Regel die Schaltflächen "Ablehnen" und "Akzeptieren".

Gewisse Konfigurierbarkeit

Diese Cookie-Hinweise geben dem Nutzer die Möglichkeit, Cookies abzulehnen, unterstützen aber keine detaillierteren Kontrollen. Dieser Ansatz für Cookie-Hinweise ist weniger verbreitet.

Vollständige Konfigurierbarkeit

Diese Cookie-Hinweise bieten den Nutzern eine genauere Kontrolle, um die von ihnen akzeptierte Cookie-Nutzung zu konfigurieren.

  • UX: Die Steuerelemente für die Konfiguration der Cookie-Nutzung werden in der Regel in einem separaten Modal angezeigt, das gestartet wird, wenn der Benutzer auf den anfänglichen Cookie-Hinweis antwortet. Wenn es der Platz zulässt, zeigen einige Websites diese Steuerelemente jedoch inline in der anfänglichen Cookie-Zustimmungsmeldung an.
  • Granularität: Der gängigste Ansatz für die Konfigurierbarkeit von Cookies besteht darin, den Nutzern die Möglichkeit zu geben, die Zustimmung zu Cookies nach Cookie-"Kategorien" zu erteilen. Beispiele für gängige Cookie-Kategorien sind funktionale, zielgerichtete und Social-Media-Cookies.

Einige Websites gehen jedoch noch einen Schritt weiter und erlauben es den Benutzern, sich für jedes einzelne Cookie zu entscheiden. Eine andere Möglichkeit, den Nutzern spezifischere Kontrollmöglichkeiten zu bieten, besteht darin, Cookie-Kategorien wie "Werbung" in spezifische Anwendungsfälle aufzuteilen, z. B. indem den Nutzern die Möglichkeit gegeben wird, sich separat für "einfache Werbung" und "personalisierte Werbung" zu entscheiden.