Der Score zeigt erhöhten Prüfbedarf aus technischen Signalen; er ist ein Priorisierungssignal, kein Verbot.
Live-Domain-Report
catchthemoment.ch Datenschutz-Check
Scan-ID: 096fd56e-03f7-4e75-801a-73572708b595 · 2026-06-13 04:21:06.558789+02
Geprüfte Domain-Wurzel: https://catchthemoment.ch/
Kurz-URL: saferpage.de/catchthemoment.ch
In 20 Sekunden lesen
Was ist bei catchthemoment.ch wirklich wichtig?
Nutzen Sie diese Kurzfassung zuerst als Evidence-Checkliste: belegte Signale, Claim-Grenzen und Linkziele stehen im Vordergrund; Betreiberkontext ohne Scan-Beleg wird nur verlinkt.
Der Report zeigt relevante Datenschutz-Signale; der Abgleich mit den Website-Flows bleibt Betreiberkontext.Belegbar4 technische Evidence-Punkte aus dem gespeicherten passiven Lauf.Guide-LinkBetreiber-Checkliste öffnenNicht behaupten3 Claim-Grenzen: keine Rechtsfreigabe, kein Zertifikat, kein abschließendes Seriositätsurteil.Fix-PfadFixpfad öffnenNachweiseMethodik · Evidence-Hub
Betreiberentscheidung
Welche Fakten und Linkziele gibt es für catchthemoment.ch?
Der Abschnitt trennt technische Evidence von Betreiber-Background. Er enthält kein Rechtsurteil, keine Freigabe, kein pauschales Misstrauenslabel und keine eingebetteten Guide-Inhalte.
Crawl fand 1 Formular(e) auf 1 Seite(n).
3 Cookie(s) vor Einwilligung, 3 datenschutzrelevante Drittanbieter-Domain(s), 1 Tracking-Script(s) im gespeicherten Lauf.
Google-Tag-Evidence wurde gesehen; die Detailbewertung ist als Link ausgelagert.
Nicht behaupten: SaferPage bestätigt keine DSGVO-Konformität, keine Malwarefreiheit, keine rechtssichere Cookie-Einwilligung und keine abschließende Betreibertransparenz. Relevante Änderungen immer erneut scannen und fachlich freigeben.
Aussage-Ampel
Was dieser Report belegt, was zu prüfen ist und was nicht behauptet werden darf
Diese Einordnung schützt vor überzogenen Scanner-Schlüssen: technische Beobachtung, manuelle Betreiberprüfung und klare Claim-Grenzen bleiben getrennt.
Verlässlichkeitsgrenze: Die sichtbare Evidence ist auswertbar, aber Formulare, Cookies, Drittanbieter, Google-Tags und Rechtsgrundlagen brauchen Betreiberkontext.
Score 0/100 als Priorisierung aus passivem HTTP-, HTML-, Header-, Cookie- und Browserkontakt-Sample.
50 Browser-Request(s), 3 datenschutzrelevante Drittanbieter-Domain(s), 1 Tracking-Script(s) im gespeicherten Lauf.
4 direkt geprüfte Test-URL(s) im Crawl-Abschnitt; die Ziel-Links bleiben im Report nachvollziehbar.
Crawl-Evidenz: 1 Formular(e) auf 1 geprüften Seite(n) sichtbar, statt sie als nicht vorhanden zu verstecken.
- Status
- belegbar
keine DSGVO-Konformität, keine Rechtsberatung und keine Betreiberfreigabe
kein abschließendes Seriositätsurteil über catchthemoment.ch
keine Malwarefreiheit, kein Penetrationstest und keine vollständige Prüfung hinter Login, Paywall oder Geoblocking
- Status
- nicht freigegeben
Datenschutz-Fokus: Der Report zeigt konkrete Datenschutz-, Consent-, Formular- und Transparenzsignale. Er ist kein Freigabesiegel und braucht bei Website-Änderungen einen neuen technischen Re-Scan.
Prüfumfang & Grenzen
Was SaferPage geprüft hat - und was nicht
Prüfumfang und Grenzen des passiven SaferPage-Kurzchecks: getestet, nicht getestet, manuell zu prüfen und erneut zu scannen.
Passiver HTTP-/Browser-Sample: 50 Browser-Request(s), 3 datenschutzrelevante Drittanbieter-Domain(s).
Cookies und Consent-Startzustand: 3 Cookie(s) vor Einwilligung im gespeicherten Lauf.
Öffentlich erreichbare Test-URLs: 4 direkt geprüfte Test-URL(s) im Crawl-/Coverage-Abschnitt.
Formular-Evidenz aus öffentlichem Crawl: 1 Formular(e) auf 1 Seite(n) erkannt.
- Status
- belegt
Claim-Grenze: Der Prüfumfang beschreibt den gespeicherten passiven Kurzcheck. Er ersetzt keine Rechtsberatung, keine Betreiberfreigabe und keinen Deep-Scan hinter Login, Paywall oder Interaktion.
Konsolidierungscheck
Sind typische Fehlalarme für Betreiber eingeordnet?
Diese Kontrolle prüft die Report-Darstellung gegen bekannte Schwachstellen: Formular-Widersprüche, Google-Consent-Fehlalarme, doppelte Maßnahmen, Consent-/Paywall-Grenzen und pauschale Besucherwarnungen.
Gleiche Scan-Hinweise werden nicht doppelt in die Top-Liste geschoben.
Grenze: Deduplizierung fasst gleich benannte Scan-Hinweise zusammen, ersetzt aber keine fachliche Priorisierung.
Prüfkatalog öffnenGoogle Consent nur bei Google-Evidenzok · Google-Evidenz prüfen
Google-Tags oder Google-Domains wurden gesehen; Consent-Mode-Einordnung anhand der konkreten Requests prüfen.
Grenze: Ein später eingebauter Google-Tag braucht einen Re-Scan; diese Aussage gilt nur für die gespeicherte Scan-Evidenz.
Consent-Guide öffnenFormulare konsistent eingeordnetok · Crawl-Evidenz sichtbar
Der Report zeigt 1 Formular(e) auf 1 geprüften Seite(n) statt pauschal keine Dateneingabe zu behaupten.
Grenze: SaferPage sendet keine Formulare ab und bewertet Zweck, Pflichtfelder und Rechtsgrundlagen nicht abschließend.
Formular-Guide öffnenConsent-/Paywall-Grenze berücksichtigtok · normaler Passivlauf
Keine Publisher-/PUR-/Consent-Wall als dominante Scan-Grenze erkannt.
Grenze: Overlays, Logins, Geoblocking und Paywalls können sichtbare Nachweise verdecken und erfordern Betreiberprüfung.
Methodik öffnenBetreiber-Wording gesichertok · Grenzen sichtbar
Die Top-Liste bleibt bei Scan-Hinweisen und Linkzielen; sie wird nicht als Zertifikat, Rechtsfreigabe oder abschließendes Seriositätsurteil formuliert.
Grenze: Der Kurzreport ist eine technische Orientierung und keine Rechtsberatung, kein Penetrationstest und kein Freigabesiegel.
Einordnung öffnenAussage-Ampel exportiertok · maschinenlesbar
JSON und Markdown enthalten belegte Signale, manuelle Prüfpunkte, Claim-Grenzen und Guide-Links.
Grenze: Der Export dokumentiert die automatische Einordnung, ersetzt aber keine manuelle Betreiber- oder Rechtsfreigabe.
Aussage-Grenzen öffnen
Claim-Grenze: Die Qualitätskontrollen erklären Grenzen der automatisierten Priorisierung. Sie beweisen keine Rechtskonformität und ersetzen keine Betreiberfreigabe.
Zuletzt geprüfte Seiten
Welche Test-URLs wurden wirklich abgerufen?
Der Kurzreport zeigt hier die priorisierten Unterseiten aus dem letzten Crawl mit direktem Link zur geprüften Ziel-URL. Die Screenshot-Vorschau oben ist eine kleine 160x150-Evidence zum geprüften Seitenzustand; die Liste darunter macht sichtbar, ob Datenschutz-, Impressum-, Formular- oder andere wichtige Seiten im Test enthalten waren.
4 abgerufene Unterseite(n) · 12 zusätzlich entdeckte interne Linkziele.
Vollständiges Seiteninventar öffnen · Agentur-DeepScan öffnen
Direkte Test-URLs
Audit-Ausgabe
PDF-/Druckbericht für Betreiber und Prüfer
Dieser Bericht ist für die Browser-Funktion „Drucken“ beziehungsweise „Als PDF speichern“ optimiert. Rohdaten und auditfähige Nachweise bleiben zusätzlich über JSON, CSV, Excel-Tabellen und ein ZIP-Nachweispaket mit getrennten Cookie-, Drittanbieter-, Consent-, Request- und Aufgaben-Tabellen exportierbar.
Report richtig einordnen
Passive technische Orientierung, kein abschließendes Urteil
SaferPage bewertet sichtbare Website-Signale für catchthemoment.ch. Der Score hilft beim Priorisieren, ersetzt aber keine Rechtsberatung, keine Zertifizierung, keinen Penetrationstest und keine Betreiberfreigabe.
Grenzen der automatischen Bewertung
Welche Grenzen sind aus der Evidence ableitbar?
Diese Konsolidierung zeigt sichtbare technische Beobachtungen getrennt von allgemeinem Betreiber-Background. Nicht belegte Kontexte werden nur als Guide-Link angeboten.
Der Wert ist aus technischen Signalen berechnet und dient der Reihenfolge der sichtbaren Hinweise.
Methodik öffnenFormulareCrawl-Evidenz vorhanden
Der Check zeigt 1 Formular(e) auf 1 geprüften Seite(n).
Formular-Guide öffnenGoogle Consent ModeGoogle-Evidenz prüfen
Google-Tags oder Google-Domains wurden gesehen; Consent Defaults und Tag-Gating anhand der konkreten Requests prüfen.
Consent-Guide öffnenConsent-/Paywall-Gateskeine besondere Gate-Grenze erkannt
Im gespeicherten Kurzcheck wurde keine besondere Gate-Grenze hervorgehoben.
Grenzen öffnenCookies vor Einwilligung3 Cookie(s) gesehen
Der passive Browserlauf speicherte 3 Cookie(s) vor Einwilligung und 3 datenschutzrelevante Drittanbieter-Domain(s).
Cookie-Guide öffnenExterne Skript-LieferketteSkriptquellen prüfen
Der HTML-Check sah 2 externe Skript(e) von 2 Host(s), davon 2 ohne SRI und 1 Tracking-/Tag-nahe Skript(e).
Skript-Guide öffnenRobots & SitemapCrawl-Scope-Evidence vorhanden
Der passive Coverage-Check hat robots.txt erfolgreich abgerufen, 5 Sitemap-Quelle(n) gelesen, 2 Sitemap-Kandidat(en) gesehen, 120 Sitemap-URL(s) und 30 interne Linkziele gespeichert.
Crawl-Grenzen öffnenIndexierungs-SignaleRobots-Direktiven gesehen
Der passive Abruf sah 1 Meta-Robots-Signal(e), 0 X-Robots-Tag-Wert(e) und 0 begrenzende Direktive(n): follow, index, max-image-preview:large, max-snippet:-1, max-video-preview:-1.
Indexierungs-Grenzen öffnenKI-/Crawler-PolicyPolicy-Dateien gesehen
Der passive Same-Origin-Check sah 2 von 5 festen Policy-Datei(en), 1 llms/AI/WARD-Datei(en) und 0 explizite KI-Bot-Regel(n) in robots.txt. robots.txt: generic_robots_policy; llms/AI/WARD: policy_file_found.
KI-/Crawler-Grenzen öffnenAdTech-TransparenzdateienDatei-Evidence gesehen
Der passive Same-Origin-Check sah 1 von 3 AdTech-Datei(en), 16 ads.txt-Zeile(n), 0 app-ads.txt-Zeile(n), DIRECT 0, RESELLER 0, Exchange-Domains 8 und 0 sellers.json-Seller.
AdTech-Grenzen öffnenSecurity-/Trust-Policysecurity.txt gesehen
Der passive Same-Origin-Check sah 2 von 2 security.txt-Ziel(en), 0 Kontaktfeld(er), 0 strukturierte Feld(er), bevorzugter Well-known-Pfad: ja, Expires-Feld: nein.
Security-/Trust-Grenzen öffnenAusgeblendeter Inhalt1 Treffer gesehen
Der HTML-/CSS-Check hat ausgeblendeten Text als technisches Signal gespeichert.
Einordnung öffnenBewertungs-/Review-Markupnicht belegt
Der passive Lauf hat kein Bewertungs-/Review-Markup als Schwerpunkt gespeichert.
SEO-/Markup-Guide öffnenSuchmaschinenansichtkeine klare Abweichung
Normaler Abruf und Googlebot-Abruf wurden verglichen: Status 200 / 200, Textähnlichkeit 1.
Cloaking-Guide öffnenHreflang-/Sprachalternativennicht belegt
Der passive Lauf hat keine Hreflang-Alternates als Schwerpunkt gespeichert.
Hreflang-Guide öffnenBetreibertransparenzLink-Evidenz im Scan nicht belegt
Der passive Lauf hat keinen belastbaren Impressum-Link gespeichert.
Transparenz-Guide öffnen
Link-only
Faktenbasierte Linkziele statt Fix-Anleitung
Diese Testresult-Seite zeigt Scan-Fakten zur geprüften Website. Umsetzungsschritte, Betreiber-Guides, Checklisten, Code und allgemeine Empfehlungen stehen auf getrennten Seiten; im Report erscheint nur das Linkziel.
50 Request(s), 9 Drittanbieter-Domain(s), davon 3 datenschutzrelevant, 3 Browser-Cookie(s), Transfer-Prüfbedarf: 7, Referrer-/URL-Leaks: 3, Fingerprinting-/Replay-Hinweise: 1.
Guide-, Checklisten- und Umsetzungstexte sind ausgelagert; hier bleiben Evidence und Linkziel.- Gewicht
- 100/100
- Linkziel
- öffnen
1 Tracking-Script(s), 3 Cookie(s) vor Einwilligung, 2 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 0.
Guide-, Checklisten- und Umsetzungstexte sind ausgelagert; hier bleiben Evidence und Linkziel.- Gewicht
- 100/100
- Linkziel
- öffnen
–
Guide-, Checklisten- und Umsetzungstexte sind ausgelagert; hier bleiben Evidence und Linkziel.- Gewicht
- 90/100
- Linkziel
- öffnen
Betreiber-Fazit
Erhöhter Betreiber-Prüfbedarf
Mehrere deutliche Warnsignale sprechen dafür, vor Eingabe persönlicher Daten, Registrierung oder Zahlung genauer hinzusehen.
Prüfprofil
Für welchen Betreiber-Kontext wurde priorisiert?
Prüfprofil Deutschland -> DACH: Allgemeine Website, Zielgruppe Gemischte Zielgruppe. 4 Schwerpunkt(e) für Betreiber priorisiert.
Das Profil priorisiert technische Prüfpunkte für Betreiber; es ersetzt keine rechtliche Einzelfallprüfung.
Website-Typ: Allgemeine Website · Betreiber: Deutschland · Zielregion: DACH
Schwerpunkte
Prüfmodule
Welche Bereiche wurden geprüft?
50 Request(s), 9 Drittanbieter-Domain(s), davon 3 datenschutzrelevant, 3 Browser-Cookie(s), Transfer-Prüfbedarf: 7, Referrer-/URL-Leaks: 3, Fingerprinting-/Replay-Hinweise: 1.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnenScan-Evidence in diesem Modul vorhanden; Betreiberkontext ist ausgelagert.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnenGoogle-Tags: ja, 6 Google-nahe Domain(s), Consent-Default: nein, Analytics: ja, Werbung: nein, Fonts: ja.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnenImpressum: nein, Datenschutz: nein, Kontakt: nein.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen30 interne Linkziele erkannt, 4 priorisierte Unterseite(n) abgerufen.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen0 Infrastruktur-Hinweis(e), Security-Header: 0/9 vorhanden, 9 fehlen, externe Skript-Hosts: 2.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen3 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 1 sensible Query-Kontexte.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnen3 Cookie(s), 2 Tracking-/Werbe-Cookie(s), 1 Drittanbieter-Cookie(s), 2 langlebig, 0 sehr lang.
Details und Umsetzungshinweise sind ausgelagert; sichtbar bleiben Modulscore, Evidence und Linkziel.Betreiber-Guide öffnenDomainbezogene Betreiber-Fix-Guides öffnen
Betreiber-Werkzeuge
Guides und Runbooks sind ausgelagert
Diese Testresult-Seite bleibt bei Scan-Fakten zur geprüften Website. Betreiber-Guides, Runbooks und allgemeine Checklisten öffnen auf eigenen Seiten; hier werden sie nur verlinkt.
Link-only Detailmodule
Detailseiten statt eingebetteter Guides
Diese Testresult-Seite bleibt bei Scan-Fakten zur geprüften Website. Nachweise, Badge-Code, Benchmark, Monitoring, Runbooks und Betreiber-Guides öffnen auf eigenen Seiten; im Testresult stehen nur feste Links, keine Guide-Inhalte.
Monitoring
Was hat sich seit dem letzten Scan verändert?
Noch kein Vergleich
Noch kein früherer gespeicherter Scan für diese Domain vorhanden.
Scan-Verlauf
Betreiber-Risiko
Priorisierte Scan-Hinweise aus dem gespeicherten Report
Hoher Betreiber-Handlungsbedarf
Abgeleitet aus dem Datenschutz-Webseiten-Report: Datenschutz, TDDDG/ePrivacy, BSI-Sicherheit, Google-Qualität und Nutzbarkeit werden nach passiven Befunden priorisiert.
Regelwerks-Scorecard
Regelwerks-Matrix
Domainhistorie
Wie lange gibt es die Domain?
Domainhistorie konnte per RDAP nicht zuverlässig abgerufen werden.
RDAP-Hinweise
Datenschutz zuerst
Was sieht ein Nutzer beim ersten Aufruf?
Cookies beim ersten Aufruf: 0 · Tracking-Skripte: 1 · Datenschutzerklärung: nein · Impressum: nein · Ablehnen-Option: nein
Dateneingabe & Zahlung
Welche Daten könnte die Seite abfragen?
Crawl fand 1 Formular(e) auf 1 geprüften Seite(n). Datenschutzkontext: nein · Betreiberkontext: ausgelagert
Erkannte Eingaben
PII & Datenlecks
Könnten personenbezogene Werte in URL, Referrer oder Tracking landen?
1 PII-/Datenleck-Hinweis(e) aus URL-, Formular- und Browserkontext. Score: 82 · Hinweise: 1
Leckpfade
Kurzantwort
Kann man der Website vertrauen?
Der Check bleibt passiv und formuliert die wichtigsten Punkte als Betreiberhinweise. Technische Details bleiben nachvollziehbar im JSON erhalten.
Browser-Sicht
Was lädt die Seite im Chromium-Browser nach?
Requests: 50 · kontaktierte Domains: 10 · Drittanbieter: 9 · Browser-Cookies: 3 · Storage: 2 (0 Tracking-Hinweis(e)) · Banner: Akzeptieren 0 / Ablehnen 0 / Einstellungen 0 · Ablehnen/Akzeptieren: 0 · Reject-Test: nicht gefunden, neue Cookies 0, neue Tracking-Kontakte 0 · Accept-Test: nicht ausgeführt, neue Cookies 0, neue Tracking-Kontakte 0 · TCF-String: nein, Purposes 0, Vendors 0 · GPC: aktiv, Datenschutz-Domains 3, Drittanbieter-Cookies 1 · CMP: nein · Browser: playwright-chromium
Zwecke
CMP & Storage
Drittanbieter
Consent-Zustände
Was passiert beim Erstaufruf, nach Ablehnen, nach Akzeptieren und mit GPC?
Consent-State-Evidence: 4 Zustände verglichen, 0 hoch auffällig, 2 mittel auffällig. Score: 80
Zustandsnachweis
Consent-Journey
Welche Anbieter erscheinen im Erstaufruf, nach Ablehnen, nach Akzeptieren und bei GPC?
Consent-Journey: 0 neue Datenschutz-Domain(s) nach Ablehnen, 0 nach Akzeptieren, 3 im GPC-Aufruf. Score: 76 · Ablehnen neu: 0 · Akzeptieren neu: 0 · GPC: 3
Zustandsmatrix
Drittanbieter-Kontakte
Wer bekommt beim ersten Aufruf technische Kontaktpunkte?
9 Drittanbieter-Domain(s) beim ersten Browseraufruf, davon 3 datenschutzrelevant. Score: 30 · Requests: 20 · datenschutzrelevant: 3
Kontaktmatrix
Betreiber-Verzeichnis
Empfänger- und Auftragsverarbeiter-Signale aus dem Scan
9 Empfänger-/Anbieter-Eintrag/Einträge aus Browserkontakten und Cookie-Inventar, 3 datenschutzrelevant, 6 mit AVV-/Rollenprüfung. Score: 19 · hoher Prüfbedarf: 4 · AVV/Rolle prüfen: 6
Automatisch aus technischen SaferPage-Signalen abgeleitet; Rollen, Verträge und Rechtsgrundlagen bleiben Betreiberkontext.
Anbieterinventar
Transfer-Risiko
Drittanbieter mit Transfer- oder Jurisdiktionssignal
9 Drittanbieter für Transfer-/Jurisdiktionsprüfung, 7 mit hohem Prüfbedarf, 2 unklar. Score: 39 · hoher Prüfbedarf: 7 · unklar: 2
Anbieter-Prüfliste
Externe Inhalte
Laden Videos, Karten, Captchas oder Social-Widgets schon beim Seitenaufruf?
1 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen. Score: 100 · vorab geladen: 0 · Captcha: 1
Embed-Prüfliste
Referrer & URL-Leaks
Werden Seitenpfade oder Suchparameter an Drittanbieter sichtbar?
3 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 1 sensible Query-Kontexte. Score: 39 · Domains: 3 · sensible Kontexte: 1
Leak-Prüfliste
Tracking-Pixel & Beacons
Sendet die Seite unsichtbare Pixel, Link-Pings oder Beacon-Telemetrie?
0 Pixel-/Bildtracking-Hinweis(e), 3 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s). Score: 68 · Pixel: 0 · Beacons/Telemetry: 3 · Link-Pings: 0
Signale
Fingerprinting & Session-Replay
Liest die Seite Browser-Merkmale oder Interaktionen aus?
1 Fingerprinting-/Session-Replay-Hinweis(e) aus dem Browserlauf. Score: 96 · Hinweise: 1
Browser-API-Check
Seitenabdeckung
Welche Unterseiten wurden gefunden?
30 interne Linkziele erkannt (120 aus Sitemap), 4 priorisierte Unterseite(n) zusätzlich abgerufen. Score: 26 · wichtige Seiten: kontakt · Sitemap-URLs: 120 · gelesene Sitemaps: 5 · Unterseiten mit Tracking: 4 · Formularlücken: 1 · Anbieter-Abgleich: 0/5 erwähnt
Priorisierte Seiten
Datenschutzerklärung
Anbieter-Abgleich
Google Consent Mode
Sind Google-Tags vor Einwilligung begrenzt?
Google-Consent-Mode-Signale wurden aus GTM/Analytics/Ads-Tags, passenden Browserkontakten und Tracking-IDs abgeleitet; reine Google-Service-Kontakte werden separat gezählt. Score: 40
Nachweis
Consent Mode
Scan-Fakten und ausgelagerter Guide
Consent-Mode-Implementierung 30/100; 2/6 Schritt(e) bereit, 4 offen. Google-Tags erkannt.
Das Testresult zeigt nur Scan-Status, Zähler und den Link zur Detailseite. Consent-Anleitung, Code und Umsetzungsschritte werden hier nicht gerendert.
Consent-Audit
Haelt die Seite Tracking bis zur Einwilligung zurueck?
Consent, Tracking oder Drittanbieter wirken im Erstaufruf deutlich nachbesserungsbeduerftig. Score: 0 · Cookies vor Einwilligung: 3 · Tracking-Cookies: 2 · Browser-Ablehnen: 0 · Ablehnen/Akzeptieren: 0 · Reject geklickt: nein · neue Cookies nach Ablehnen: 0 · Accept geklickt: nein · neue Cookies nach Akzeptieren: 0 · neue Tracking-Kontakte nach Akzeptieren: 0 · TCF-String: nein · TCF Purposes: 0 · TCF Vendors: 0 · GPC Datenschutz-Domains: 3 · GPC Drittanbieter-Cookies: 1 · Storage-Hinweise: 0 · CMP: nein · datenschutzrelevante Drittanbieter: 0
Pruefpunkte
Consent-Guide-Link
Blockierplan-Link
Banner-UX
Wirkt das Consent-Banner fair und gleichwertig bedienbar?
Consent-Banner-UX: 2 auffällige Prüfpunkt(e), davon 1 hoch. Muster: Tracking vor Einwilligung. Score: 74 · Akzeptieren: 0 · Ablehnen: 0 · Einstellungen: 0 · Dark-Pattern-Hinweise: 1
Automatisch aus sichtbaren Banner-Controls und Browser-Interaktionen abgeleitet; visuelle Details und Rechtmäßigkeit fachlich prüfen.
UX-Prüfpunkte
TCF-Decoder
Welche IAB-TCF-Zwecke wirken im Erstaufruf erlaubt?
TCF-Decoder: 0 Zweck(e) mit Consent/LI-Signal, 0 Vendor-Consent(s), 0 Vendor-LI-Signal(e). Score: 100 · TC-String: nein · Purposes Consent: 0 · Purposes LI: 0 · Vendor Consent: 0 · Vendor LI: 0
TCF-Zwecke
Quellenmatrix
Welche offiziellen Quellen stützen die Einordnung?
Quellenmatrix: 10 offizielle/operative Quelle(n) mit Befundbezug und Betreibermaßnahme.
Quellen dienen der technischen Einordnung und Betreiber-Dokumentation; sie ersetzen keine Rechtsberatung.
Quellen: 10 · offizielle Links: 6
Referenzen
DSGVO & TDDDG
Welche Signale mit Rechtsgrundlagen-Bezug wurden gezählt?
Der passive Scan stellt keine Rechtsgrundlage fest.
Er zählt nur beobachtete Cookie-, Storage-, Drittanbieter-, Formular- und Consent-Signale. Die fachliche Rechtsgrundlagenprüfung bleibt Betreiberkontext und ist als Guide ausgelagert.
Einwilligungsbezug: 9 · vor Consent auffällig: 3 · unklar/prüfen: 13 · Drittanbieter: 8 · Storage: 2
Rechtsgrundlagen-Guide-Link
Detailprüfung, Rechtsbewertung und Umsetzungshinweise werden nicht im Testresult ausgespielt.
Disclosure-Abgleich
Passt die Datenschutzerklärung zur beobachteten Technik?
Disclosure-Abgleich: 5 beobachtete Anbieter, 5 Anbieter ohne klare Erwähnung, 0 fehlende Policy-Bausteine.
Automatischer Textabgleich gegen technische Beobachtungen; Schreibweisen und dynamische Inhalte können manuelle Prüfung erfordern.
Score: 0 · Anbieter erkannt: 5 · Anbieter fehlen: 5 · Policy-Lücken: 0
Lücken
Datenschutzhinweis
Welche Disclosure-Signale wurden gesehen?
Entwurf aus Scan-Evidenz: 3 Cookie(s), 9 Drittanbieter-Domain(s), 2 Storage-Key(s).
Der Testresult-Report zeigt hier nur Zähler, beobachtete Signale und Links; redaktionelle Inhalte und Betreiber-Background stehen auf separaten Seiten.
Scan-Zähler
Cookie-Signale
Drittanbieter-Signale
Web-Storage-Signale
Cookie-Inventar
Welche Cookies wurden beim ersten Aufruf gesehen?
3 Cookie(s) inventarisiert: 2 Tracking-/Werbe-Cookie(s), 1 Drittanbieter-Cookie(s), 2 langlebige Cookie(s), 0 sehr lange Laufzeit(en). Score: 42 · ohne Secure: 2 · ohne SameSite: 0 · persistent: 3 · langlebiges Tracking: 2 · sehr lang: 0 · Laufzeitrisiko: 2
Cookies
Cookie-Disclosure
Welche Cookie-Signale wurden gesehen?
Cookie-Erklärung mit 5 Eintrag/Einträgen aus Cookies und Web Storage: 2 einwilligungspflichtig, 2 unklassifiziert. Score: 60 · einwilligungspflichtig: 2 · vor Consent: 2 · unklassifiziert: 2
Automatisch aus SaferPage-Cookie- und Web-Storage-Signalen abgeleitet; Kategorien und Zwecke vor Veröffentlichung fachlich prüfen.
Kategorien und Einträge
Barrierefreiheit & Usability
Sind Basis-Signale für Screenreader und Tastatur erkennbar?
13 Bild(er), 0 Formularfeld(er), 0 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft. Score: 68
2 WCAG-/EAA-Prüfpunkt(e) auffällig, davon 0 mit hoher Auswirkung. Automatisch aus HTML-Signalen abgeleitet; ersetzt keine vollständige manuelle WCAG-/BITV-Prüfung.
Nachweis
WCAG/EAA-Prüfpunkte
BFSG/WCAG
Welche Erklärungs-Signale liegen vor?
Entwurf mit 2 bekannten Barrierefreiheits-Punkt(en) aus dem Scan. Status: Teilweise konform im automatischen Basischeck
Erklärungstexte und allgemeine Umsetzungshinweise sind ausgelagert.
Signale und Link
DSGVO, Cookies & Tracking
Welche Datenschutz-Signale fallen auf?
Consent-Hinweis: nein · Datenschutz-Hinweis: nein · Cookies: 0
Tracking
Cookies
Seiteninhalt & Keywords
Worum geht es auf der Seite?
Fotostudio Catch The Moment » Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich
Fotostudio Zürich, Fotoshooting Zürich, Fotograf, Fotostudio, Hochzeitsfotograf
Technologie-Erkennung
Womit wurde die Seite gebaut?
Server: Apache · Powered-by: PHP/7.4.33 · Generator: WordPress 6.9.4
CVE & Versionsrisiko
Gibt es Hinweise auf bekannte Schwachstellen?
Versionsrisiko gefunden. Erkannte Versionen: 2 · Advisory-Treffer: 0 · Versionsregeln: 1
Impressum & Betreibertransparenz
Sind rechtliche Hinweise erkennbar?
Impressum: nein · Datenschutz: nein · Ablehnen-Option: nein
Performance / PageSpeed-Basis
Wirkt die Seite schnell und mobil nutzbar?
Score: 88 · Antwortzeit: 525 ms · HTML: 0 Bytes · Viewport: nein
Infrastruktur & TLS-Vertrauen
DNS-, HTTPS- und E-Mail-Schutzsignale aus dem Scan
IPs: 2 · IPv6: ja · Zertifikat: 47 Tage · HSTS: nein · MX/SPF/DMARC: ja/ja/ja
Security-Header
Welche Browser-Schutzheader sind gesetzt?
0 von 9 wichtigen Security-Headern vorhanden, 0 korrekt bewertet. Keine Content-Security-Policy gefunden. Score: 34 · vorhanden: 0 · fehlen: 9 · prüfen: 0
Header-Evidence
Security-Header-Guide-Link
CSP-Qualität
Skript-Lieferkette
Externe Skript-Lieferkette aus dem gespeicherten Scan
2 externe Skript(e) von 2 Host(s), 2 ohne SRI, 1 Tracking-/Tag-nahe Skript(e). Score: 82 · Hosts: 2 · ohne SRI: 2 · Tracking/Tags: 1
Skriptquellen
Zusammenhänge & Servernetzwerk
Verbindungs- und Servernetz-Signale aus dem Scan
Ad-/Tracking-IDs: 0 · gleiche-IP-Nachbarn: 0 · bekannte eingehende Links: 0 · Servernetze: 2
Signale
Servernetz
SEO, Verhalten & Cloaking
Gibt es manipulative Signale?
SEO-Risiko: high · Browser-Verhalten: low · Cloaking: low
Alle Hinweise
Scan-Fakten als JSON anzeigen
{
"schema": "https://saferpage.de/schemas/public-scan-facts.v1",
"claim_boundary": "Öffentliche Rohdaten enthalten nur Scan-Fakten, Statuswerte, Evidence-Grenzen und feste Detail-/Guide-Links. Betreiber-Guides, Planungen, Checklisten, Code und allgemeine Empfehlungen sind ausgelagert.",
"host": "catchthemoment.ch",
"normalized_url": "https://catchthemoment.ch/",
"score": 0,
"verdict": {
"color": "red",
"label": "riskant",
"score": 0
},
"scan_id": "096fd56e-03f7-4e75-801a-73572708b595",
"created_at": "2026-06-13 04:21:06.558789+02",
"evidence": {
"dns": {
"ok": true,
"addresses": [
"2001:918:ff23:197:115::1",
"212.243.197.115"
],
"duration_ms": 25
},
"tls": {
"ok": true,
"cipher": "TLS_AES_256_GCM_SHA384",
"issuer": [
[
[
"countryName",
"US"
]
],
[
[
"organizationName",
"Let's Encrypt"
]
],
[
[
"commonName",
"E8"
]
]
],
"subject": [
[
[
"commonName",
"www.catchthemoment.ch"
]
]
],
"version": "TLSv1.3",
"not_after": "Jul 31 02:11:55 2026 GMT",
"hostname_matches": true,
"days_until_expiry": 47,
"subject_alt_names": [
"catchthemoment.ch",
"www.catchthemoment.ch"
],
"issuer_common_name": "E8"
},
"http": {
"ok": true,
"status": 200,
"headers": {
"date": "Sat, 13 Jun 2026 02:20:40 GMT",
"vary": "Accept-Encoding",
"server": "Apache",
"nzspeedy": "OFF",
"connection": "close",
"content-type": "text/html; charset=utf8",
"x-powered-by": "PHP/7.4.33",
"transfer-encoding": "chunked"
},
"body_size": 37110,
"final_url": "https://www.catchthemoment.ch/",
"duration_ms": 525
},
"scanner": {
"bot_url": "https://saferpage.de/bot",
"context": "manual",
"user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)",
"default_user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)"
},
"domain_records": {
"mx": true,
"caa": true,
"spf": true,
"dmarc": true,
"dnssec": false
},
"googlebot_http": {
"ok": true,
"status": 200,
"headers": {
"date": "Sat, 13 Jun 2026 02:20:42 GMT",
"vary": "Accept-Encoding",
"server": "Apache",
"nzspeedy": "OFF",
"connection": "close",
"content-type": "text/html; charset=utf8",
"x-powered-by": "PHP/7.4.33",
"transfer-encoding": "chunked"
},
"body_size": 37110,
"final_url": "https://www.catchthemoment.ch/",
"duration_ms": 1799
},
"ai_search_policy_evidence": {
"files": [
{
"id": "robots_txt",
"url": "https://www.catchthemoment.ch/robots.txt",
"label": "robots.txt",
"reason": "",
"status": "found",
"body_size": 179,
"truncated": false,
"body_sha256": "a3d864939008f34e994293f22f4d57731a23c736575850425ab623460b7d9d20",
"duration_ms": 697,
"http_status": 200,
"ai_bot_policy": {
"bot_directives": [],
"explicit_ai_bots": [],
"explicit_ai_bot_count": 0,
"wildcard_directive_count": 1,
"wildcard_directives_sample": [
{
"value": "",
"directive": "disallow"
}
]
},
"relevant_lines": [
"User-agent: *",
"Disallow:",
"Sitemap: https://www.catchthemoment.ch/sitemap_index.xml"
]
},
{
"id": "llms_txt",
"url": "https://www.catchthemoment.ch/llms.txt",
"label": "llms.txt",
"reason": "",
"status": "found",
"body_size": 28538,
"truncated": false,
"body_sha256": "75486563db78161d648da514d2379fd51559dbb23ef626bc518f21f473b4afd3",
"duration_ms": 214,
"http_status": 200,
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
]
},
{
"id": "ai_txt",
"url": "https://www.catchthemoment.ch/.well-known/ai.txt",
"label": "AI Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 482,
"http_status": 404,
"relevant_lines": []
},
{
"id": "ai_policy_txt",
"url": "https://www.catchthemoment.ch/.well-known/ai-policy.txt",
"label": "AI Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 369,
"http_status": 404,
"relevant_lines": []
},
{
"id": "ward_txt",
"url": "https://www.catchthemoment.ch/.well-known/ward.txt",
"label": "WARD Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 364,
"http_status": 404,
"relevant_lines": []
}
],
"origin": "https://www.catchthemoment.ch",
"schema": "https://saferpage.de/schemas/ai-search-policy-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 5,
"found_file_count": 2,
"policy_file_count": 1,
"explicit_ai_bot_count": 0
},
"summary": "2 von 5 Policy-Datei(en) gefunden; 0 explizite KI-Bot-Regel(n) in robots.txt.",
"available": true,
"guardrails": [
"Nur feste Same-Origin-Policy-Dateien",
"Keine Off-Host-Redirects",
"64-KB-Body-Limit",
"Öffentlich nur Hash, Status und kurze relevante Zeilen"
],
"known_ai_bots": [
"GPTBot",
"ChatGPT-User",
"Google-Extended",
"ClaudeBot",
"PerplexityBot",
"CCBot"
],
"explicit_ai_bots": [],
"policy_file_count": 1,
"llms_ward_policy_status": "policy_file_found",
"robots_ai_policy_status": "generic_robots_policy"
},
"adtech_transparency_evidence": {
"files": [
{
"id": "ads_txt",
"url": "https://www.catchthemoment.ch/ads.txt",
"label": "ads.txt",
"reason": "",
"status": "found",
"body_size": 28542,
"truncated": false,
"body_sha256": "0a1d5ac0d493d0358aa3c396303b5d0b1e01beaa45ed64774333f61248ca443d",
"duration_ms": 1238,
"http_status": 200,
"ads_txt_policy": {
"entry_count": 16,
"rows_sample": [
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<title>page not found - fotoshooting",
"cert_authority_id": "Zürich</title>",
"publisher_id_hash": "39f9f04f647235f9"
},
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<meta property=\"og:title\" content=\"page not found - fotoshooting",
"cert_authority_id": "Zürich\" />",
"publisher_id_hash": "39f9f04f647235f9"
},
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<meta property=\"og:site_name\" content=\"fotoshooting",
"cert_authority_id": "Zürich\" />",
"publisher_id_hash": "39f9f04f647235f9"
},
{
"relationship": "\"@ID\":\"HTTPS:\\/\\/WWW.CATCHTHEMOMENT.CH\\/",
"exchange_domain": "<script type=\"application/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\/\\/schema.org\"",
"cert_authority_id": "",
"publisher_id_hash": "c52a7be03e75fba0"
},
{
"relationship": "\" I]){CONTAIN-INTRINSIC-SIZE:3000PX 1500",
"exchange_domain": "img:is([sizes=auto i]",
"cert_authority_id": "",
"publisher_id_hash": "6ef435f87eebe8af"
},
{
"relationship": "{\"DOMAINS\":[\"WWW.CATCHTHEMOMENT.CH\"]} );",
"exchange_domain": "gtag('set'",
"cert_authority_id": "",
"publisher_id_hash": "aa3c503ce8fc6009"
},
{
"relationship": "TRUE);",
"exchange_domain": "gtag(\"set\"",
"cert_authority_id": "",
"publisher_id_hash": "56a4fbdb1157584a"
},
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<link rel=\"alternate\" href=\"https://www.catchthemoment.ch/feed/\" type=\"application/rss+xml\" title=\"fotoshooting",
"cert_authority_id": "Zürich Posts RSS feed\"/>",
"publisher_id_hash": "39f9f04f647235f9"
}
],
"direct_count": 0,
"variable_keys": [
"</li><li id",
"</nav><div id",
"</table><div id",
"<a href",
"<a id",
"<article id",
"<body id",
"<div class"
],
"reseller_count": 0,
"variable_count": 138,
"invalid_line_count": 127,
"exchange_domain_count": 15,
"exchange_domains_sample": [
"</html><script id=\"prophoto\" type=\"application/json\">{\"ajaxurl\":\"https:\\/\\/www.catchthemoment.ch\\/wp-admin\\/admin-ajax.php\"",
"<a href=\"https://www.catchthemoment.ch\" class=\"text-home mi-type-internal mi-home mi-anchor-text first-menu-item\" title=\"fotoshooting",
"<a href=\"https://www.catchthemoment.ch\" title=\"fotoshooting",
"<img src=\"https://www.catchthemoment.ch/wp-content/uploads/pp/images/logo_1450521699.jpg\" id=\"logo-img\" width=\"444\" height=\"136\" alt=\"fotoshooting",
"<link rel=\"alternate\" href=\"https://www.catchthemoment.ch/feed/\" type=\"application/rss+xml\" title=\"fotoshooting",
"<meta property=\"og:site_name\" content=\"fotoshooting",
"<meta property=\"og:title\" content=\"page not found - fotoshooting",
"<script type=\"application/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\/\\/schema.org\""
]
},
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
],
"sellers_json_policy": []
},
{
"id": "app_ads_txt",
"url": "https://www.catchthemoment.ch/app-ads.txt",
"label": "app-ads.txt",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 402,
"http_status": 404,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
},
{
"id": "sellers_json",
"url": "https://www.catchthemoment.ch/sellers.json",
"label": "sellers.json",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 1383,
"http_status": 404,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
}
],
"origin": "https://www.catchthemoment.ch",
"schema": "https://saferpage.de/schemas/adtech-transparency-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 3,
"direct_count": 0,
"reseller_count": 0,
"found_file_count": 1,
"ads_txt_entry_count": 16,
"exchange_domain_count": 8,
"app_ads_txt_entry_count": 0,
"sellers_json_seller_count": 0
},
"summary": "1 von 3 AdTech-Transparenzdatei(en) gefunden; 0 DIRECT- und 0 RESELLER-Zeile(n).",
"available": true,
"guardrails": [
"Nur feste Same-Origin-AdTech-Dateien",
"Keine Off-Host-Redirects",
"64-KB-Body-Limit",
"Öffentlich nur Hash, Status, Zähler und kurze relevante Zeilen"
],
"direct_count": 0,
"ads_txt_found": true,
"reseller_count": 0,
"app_ads_txt_found": false,
"sellers_json_found": false,
"ads_txt_entry_count": 16,
"exchange_domain_count": 8,
"sellers_json_parse_ok": false,
"app_ads_txt_entry_count": 0,
"sellers_json_seller_count": 0
},
"security_trust_policy_evidence": {
"files": [
{
"id": "security_txt",
"url": "https://www.catchthemoment.ch/.well-known/security.txt",
"label": "security.txt",
"reason": "",
"status": "found",
"body_size": 26253,
"truncated": false,
"body_sha256": "f89ef12ff7a32ff036c2b02225586f2786bdea64f62ff1a97ff18afd7efc00c0",
"duration_ms": 239,
"http_status": 200,
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
],
"security_txt_policy": {
"field_count": 0,
"contact_count": 0,
"expires_values": [],
"fields_present": [],
"policy_present": false,
"contact_samples": [],
"expires_present": false,
"canonical_present": false,
"encryption_present": false,
"preferred_languages": []
}
},
{
"id": "security_txt_legacy",
"url": "https://www.catchthemoment.ch/security.txt",
"label": "security.txt legacy",
"reason": "",
"status": "found",
"body_size": 28531,
"truncated": false,
"body_sha256": "ceef3a3d481f0213320fcb6629cc0c9b2a009bfa4a5d5df795b19b75a188e75c",
"duration_ms": 219,
"http_status": 200,
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
],
"security_txt_policy": {
"field_count": 0,
"contact_count": 0,
"expires_values": [],
"fields_present": [],
"policy_present": false,
"contact_samples": [],
"expires_present": false,
"canonical_present": false,
"encryption_present": false,
"preferred_languages": []
}
}
],
"origin": "https://www.catchthemoment.ch",
"schema": "https://saferpage.de/schemas/security-trust-policy-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 2,
"field_count": 0,
"contact_count": 0,
"found_file_count": 2,
"preferred_well_known_found": 1
},
"summary": "2 von 2 security.txt-Ziel(en) gefunden; 0 Kontaktfeld(er), 0 strukturierte Feld(er).",
"available": true,
"guardrails": [
"Nur feste Same-Origin-security.txt-Ziele",
"Keine Off-Host-Redirects",
"64-KB-Body-Limit",
"Öffentlich nur Hash, Status und kurze relevante Zeilen"
],
"field_count": 0,
"contact_count": 0,
"fields_present": [],
"policy_present": false,
"expires_present": false,
"encryption_present": false,
"security_txt_found": true,
"preferred_well_known_found": true
}
},
"findings": [
{
"id": "unsupported_technology_version",
"title": "PHP-Version ist nicht mehr upstream unterstuetzt",
"public": true,
"version": "7.4.33",
"audience": "nutzer",
"category": "vulnerability",
"severity": "critical",
"confirmed": true,
"policy_id": "PHP-EOL-BEFORE-8.2",
"technology": "PHP",
"user_importance": 132,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "pre_consent_tracking_cookies",
"title": "Tracking-Cookies vor Einwilligung gesetzt",
"public": true,
"source": "chromium_cookie_inventory",
"cookies": [
"_ga",
"_ga_LLJ6DNTE7Q"
],
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 128,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "hidden_text",
"title": "Versteckter Text erkannt",
"public": true,
"audience": "nutzer",
"category": "seo",
"severity": "warning",
"user_importance": 128,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "tracking_without_consent_hint",
"title": "Tracking ohne sichtbaren Cookie-Hinweis",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 126,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "third_party_sensitive_query_leak",
"count": 1,
"title": "Sensible URL-Schlüssel im Drittanbieter-Kontext",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 126,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "imprint_missing",
"title": "Kein Impressum-Link erkannt",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 125,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "long_lived_tracking_cookie",
"count": 2,
"title": "Langlebige Tracking-/Marketing-Cookies",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 122,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "data_entry_privacy_context_missing",
"title": "Dateneingabe ohne klaren Datenschutzkontext",
"public": true,
"audience": "nutzer",
"category": "data_entry",
"severity": "warning",
"user_importance": 122,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "third_party_full_referrer_leak",
"count": 2,
"title": "Drittanbieter können vollen Referrer-Kontext erhalten",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 120,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "google_consent_mode_missing",
"title": "Google Consent Mode Default nicht erkannt",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 120,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "third_party_page_url_parameter",
"count": 1,
"title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 118,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "browser_webgl_fingerprinting",
"count": 3,
"title": "WebGL-Merkmale wurden ausgelesen",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"user_importance": 118,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "pii_tracking_on_data_entry_page",
"title": "Dateneingabe und datenschutzrelevante Drittanbieter im selben Browseraufruf",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 118,
"importance_label": "Wichtig für Nutzer",
"third_party_count": 3
},
{
"id": "external_canonical",
"title": "Canonical zeigt auf fremde Domain",
"public": true,
"audience": "nutzer",
"category": "seo",
"severity": "warning",
"canonical_url": "https://www.catchthemoment.ch/",
"user_importance": 118,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "gpc_privacy_domains_present",
"count": 3,
"title": "Datenschutzrelevante Kontakte trotz GPC-Signal",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"user_importance": 116,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "beacon_api_usage",
"count": 3,
"title": "Beacon-/Keepalive-Telemetrie erkannt",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 116,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "operator_contact_missing",
"title": "Keine klare Kontaktmöglichkeit erkannt",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 116,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "privacy_policy_provider_disclosure_gap",
"title": "Erkannte Anbieter fehlen in der Datenschutzerklärung",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 116,
"importance_label": "Wichtig für Nutzer",
"missing_providers": [
"Google",
"Google Fonts",
"Google Tag Manager",
"Meta/Facebook",
"Google Analytics"
]
},
{
"id": "external_link_spam",
"title": "Sehr viele externe Links erkannt",
"public": true,
"audience": "nutzer",
"category": "seo",
"severity": "warning",
"user_importance": 116,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "gpc_third_party_cookies",
"count": 1,
"title": "Drittanbieter-Cookies trotz GPC-Signal",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"user_importance": 114,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "consent_state_gpc_evidence_review",
"title": "Consent-Zustand: GPC mit Tracking-Hinweisen",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"user_importance": 112,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "google_tags_without_consent_context",
"title": "Google-Tags ohne klaren Consent-Kontext",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 112,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "privacy_policy_hint_missing",
"title": "Kein klarer Datenschutz-Hinweis erkannt",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 108,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "external_tracking_script_supply_chain",
"count": 1,
"title": "Tracking-/Tag-Skripte aus externer Lieferkette",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"user_importance": 98,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "sampled_form_privacy_context_missing",
"title": "Formular-Unterseite ohne klaren Datenschutzkontext",
"public": true,
"audience": "nutzer",
"category": "crawl",
"severity": "warning",
"user_importance": 96,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "important_pages_not_discovered",
"title": "Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden",
"public": true,
"audience": "nutzer",
"category": "crawl",
"severity": "warning",
"user_importance": 88,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "external_script_without_sri",
"count": 2,
"title": "Externe Skripte ohne Subresource Integrity",
"public": true,
"audience": "nutzer",
"category": "security_headers",
"severity": "info",
"user_importance": 84,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "image_alt_missing",
"count": 10,
"title": "Bilder ohne Alternativtext",
"public": true,
"audience": "nutzer",
"category": "accessibility",
"severity": "info",
"user_importance": 82,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "missing_hsts",
"title": "HSTS fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "warning",
"user_importance": 78,
"importance_label": "Technischer Hinweis"
},
{
"id": "cmp_api_not_detected",
"title": "Keine gängige CMP-/TCF-API im Browser erkannt",
"public": true,
"audience": "betreiber",
"category": "privacy",
"severity": "info",
"user_importance": 74,
"importance_label": "Technischer Hinweis"
},
{
"id": "too_many_render_blocking_assets",
"title": "Viele potenziell blockierende Assets",
"public": true,
"audience": "betreiber",
"category": "performance",
"severity": "info",
"user_importance": 74,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_csp",
"title": "Content-Security-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "warning",
"user_importance": 72,
"importance_label": "Technischer Hinweis"
},
{
"id": "sampled_internal_tracking_detected",
"title": "Tracking-Signale auf geprüften Unterseiten",
"public": true,
"audience": "betreiber",
"category": "crawl",
"severity": "info",
"user_importance": 72,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_x_frame_options",
"title": "X-Frame-Options fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "warning",
"user_importance": 70,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_x_content_type_options",
"title": "X-Content-Type-Options fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "warning",
"user_importance": 70,
"importance_label": "Technischer Hinweis"
},
{
"id": "viewport_missing",
"title": "Viewport-Meta-Tag fehlt",
"public": true,
"audience": "betreiber",
"category": "performance",
"severity": "info",
"user_importance": 70,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_cross_origin_embedder_policy",
"title": "Cross-Origin-Embedder-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "info",
"user_importance": 68,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_cross_origin_opener_policy",
"title": "Cross-Origin-Opener-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "info",
"user_importance": 66,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_cross_origin_resource_policy",
"title": "Cross-Origin-Resource-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "info",
"user_importance": 64,
"importance_label": "Technischer Hinweis"
},
{
"id": "browser_privacy_relevant_third_parties",
"title": "Datenschutzrelevante Drittanbieter im Browseraufruf",
"public": true,
"audience": "betreiber",
"category": "privacy",
"severity": "warning",
"user_importance": 60,
"importance_label": "Technischer Hinweis"
},
{
"id": "third_country_transfer_review",
"title": "Drittland-/US-Anbieter im Browseraufruf prüfen",
"public": true,
"audience": "betreiber",
"category": "privacy",
"severity": "warning",
"user_importance": 60,
"importance_label": "Technischer Hinweis"
},
{
"id": "consent_banner_dark_pattern_risk",
"count": 1,
"title": "Consent-Banner mit Dark-Pattern-/UX-Risiko",
"public": true,
"audience": "betreiber",
"category": "privacy",
"severity": "warning",
"user_importance": 60,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_referrer_policy",
"title": "Referrer-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "info",
"user_importance": 40,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_permissions_policy",
"title": "Permissions-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "info",
"user_importance": 40,
"importance_label": "Technischer Hinweis"
},
{
"id": "remote_google_fonts_detected",
"title": "Remote-Schriften von Google erkannt",
"public": true,
"audience": "betreiber",
"category": "privacy",
"severity": "info",
"user_importance": 30,
"importance_label": "Technischer Hinweis"
},
{
"id": "many_browser_third_parties",
"title": "Viele Drittanbieter-Domains beim Laden",
"public": true,
"audience": "betreiber",
"category": "privacy",
"severity": "info",
"user_importance": 30,
"importance_label": "Technischer Hinweis"
},
{
"id": "unknown_vendor_jurisdiction",
"title": "Anbieter-Jurisdiktion nicht klar ableitbar",
"public": true,
"audience": "betreiber",
"category": "privacy",
"severity": "info",
"user_importance": 30,
"importance_label": "Technischer Hinweis"
}
],
"audit_modules": [
{
"id": "browser_evidence",
"color": "red",
"score": 0,
"title": "Browser-Nachweis",
"source": "Headless Chromium mit Screenshot- und Request-Telemetrie",
"status": "kritisch",
"evidence": "50 Request(s), 9 Drittanbieter-Domain(s), davon 3 datenschutzrelevant, 3 Browser-Cookie(s), Transfer-Prüfbedarf: 7, Referrer-/URL-Leaks: 3, Fingerprinting-/Replay-Hinweise: 1."
},
{
"id": "privacy_consent",
"color": "red",
"score": 0,
"title": "Datenschutz, Cookies & Consent",
"source": "Browser, HTTP-Header, HTML und Consent-/Cookie-Heuristik",
"status": "kritisch",
"evidence": "1 Tracking-Script(s), 3 Cookie(s) vor Einwilligung, 2 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 0."
},
{
"id": "google_third_parties",
"color": "red",
"score": 13,
"title": "Google-Dienste & Drittanbieter",
"source": "Chromium-Requests, Anbieterklassifikation und Google Consent Mode Heuristik",
"status": "kritisch",
"evidence": "Google-Tags: ja, 6 Google-nahe Domain(s), Consent-Default: nein, Analytics: ja, Werbung: nein, Fonts: ja."
},
{
"id": "operator_transparency",
"color": "red",
"score": 25,
"title": "Impressum, Kontakt & Datenschutzerklärung",
"source": "Deutschsprachige Betreiber- und Datenschutzhinweis-Erkennung",
"status": "kritisch",
"evidence": "Impressum: nein, Datenschutz: nein, Kontakt: nein."
},
{
"id": "site_coverage",
"color": "red",
"score": 26,
"title": "Seitenabdeckung & Crawl",
"source": "Startseiten-Links, Compliance-Links und begrenzter interner Zusatzabruf",
"status": "kritisch",
"evidence": "30 interne Linkziele erkannt, 4 priorisierte Unterseite(n) abgerufen."
},
{
"id": "security_tls",
"color": "red",
"score": 34,
"title": "Sicherheit, TLS & Header",
"source": "DNS, TLS, HTTP-Status, Zertifikat und Security-Header",
"status": "kritisch",
"evidence": "0 Infrastruktur-Hinweis(e), Security-Header: 0/9 vorhanden, 9 fehlen, externe Skript-Hosts: 2."
},
{
"id": "referrer_url_leaks",
"color": "red",
"score": 39,
"title": "Referrer & URL-Leaks",
"source": "Chromium-Request-Telemetrie ohne gespeicherte Parameterwerte",
"status": "kritisch",
"evidence": "3 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 1 sensible Query-Kontexte."
},
{
"id": "cookie_inventory",
"color": "red",
"score": 42,
"title": "Cookie-Inventar",
"source": "HTTP-Set-Cookie und Chromium-Cookies beim ersten Seitenaufruf",
"status": "kritisch",
"evidence": "3 Cookie(s), 2 Tracking-/Werbe-Cookie(s), 1 Drittanbieter-Cookie(s), 2 langlebig, 0 sehr lang."
},
{
"id": "seo_integrity",
"color": "red",
"score": 46,
"title": "SEO-Integrität & Cloaking",
"source": "HTML-Inhalt, strukturierte Daten, Links und Googlebot-Vergleich",
"status": "kritisch",
"evidence": "3 SEO-Spam-Hinweis(e), 0 Cloaking-Hinweis(e)."
},
{
"id": "accessibility_usability",
"color": "orange",
"score": 68,
"title": "Barrierefreiheit & Usability",
"source": "Passives HTML-Sample: Bilder, Formulare, Buttons, Sprache, Headings und Viewport",
"status": "auffällig",
"evidence": "10 Bild(er) ohne alt, 0 Formularfeld(er) ohne Beschriftung, 0 Button(s) ohne Namen."
},
{
"id": "tracking_pixels_beacons",
"color": "orange",
"score": 68,
"title": "Tracking-Pixel & Beacons",
"source": "HTML-Pixel, Link-Ping-Attribute, Chromium-Requests und Browser-API-Instrumentierung",
"status": "auffällig",
"evidence": "0 Pixel-/Bildtracking-Hinweis(e), 3 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s)."
},
{
"id": "performance_mobile",
"color": "orange",
"score": 73,
"title": "Performance & mobile Nutzbarkeit",
"source": "HTTP-Antwort, HTML-Größe, Komprimierung und mobile Basis",
"status": "auffällig",
"evidence": "Performance-Score 88, Antwortzeit 525 ms."
},
{
"id": "forms_payments",
"color": "yellow",
"score": 75,
"title": "Formulare, Login & Zahlung",
"source": "HTML-Formulare, Eingabefelder, Zahlungsanbieter und Kontextlinks",
"status": "prüfen",
"evidence": "Crawl fand 1 Formular(e) auf 1 geprüften Seite(n), u. a. /kontakt. Zweck, Pflichtfelder und Datenschutzkontext je Formular prüfen."
},
{
"id": "consent_journey",
"color": "yellow",
"score": 76,
"title": "Consent-Journey-Matrix",
"source": "Chromium-Zustände: Erstaufruf, Reject, Accept und GPC",
"status": "prüfen",
"evidence": "Consent-Journey: 0 neue Datenschutz-Domain(s) nach Ablehnen, 0 nach Akzeptieren, 3 im GPC-Aufruf."
},
{
"id": "script_supply_chain",
"color": "yellow",
"score": 82,
"title": "Externe Skripte & SRI",
"source": "HTML-Script-Tags, Anbieterklassifikation und SRI-Attribute",
"status": "prüfen",
"evidence": "2 externe Skript(e) von 2 Host(s), 2 ohne SRI, 1 Tracking-/Tag-nahe Skript(e)."
},
{
"id": "pii_exposure",
"color": "yellow",
"score": 82,
"title": "PII, URL-Parameter & Datenleck-Schutz",
"source": "URL-Parameter, interne Links, HTML-Formulare, Browser-Drittanbieter und Dateneingabe-Kontext",
"status": "prüfen",
"evidence": "1 PII-/Datenleck-Hinweis(e) aus URL-, Formular- und Browserkontext."
},
{
"id": "embedded_content",
"color": "green",
"score": 100,
"title": "Externe Inhalte & Widgets",
"source": "HTML-Embeds und Chromium-Drittanbieter-Requests",
"status": "unauffällig",
"evidence": "1 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen."
}
],
"ai_search_policy_evidence": {
"files": [
{
"id": "robots_txt",
"url": "https://www.catchthemoment.ch/robots.txt",
"label": "robots.txt",
"reason": "",
"status": "found",
"body_size": 179,
"truncated": false,
"body_sha256": "a3d864939008f34e994293f22f4d57731a23c736575850425ab623460b7d9d20",
"duration_ms": 697,
"http_status": 200,
"ai_bot_policy": {
"bot_directives": [],
"explicit_ai_bots": [],
"explicit_ai_bot_count": 0,
"wildcard_directive_count": 1,
"wildcard_directives_sample": [
{
"value": "",
"directive": "disallow"
}
]
},
"relevant_lines": [
"User-agent: *",
"Disallow:",
"Sitemap: https://www.catchthemoment.ch/sitemap_index.xml"
]
},
{
"id": "llms_txt",
"url": "https://www.catchthemoment.ch/llms.txt",
"label": "llms.txt",
"reason": "",
"status": "found",
"body_size": 28538,
"truncated": false,
"body_sha256": "75486563db78161d648da514d2379fd51559dbb23ef626bc518f21f473b4afd3",
"duration_ms": 214,
"http_status": 200,
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
]
},
{
"id": "ai_txt",
"url": "https://www.catchthemoment.ch/.well-known/ai.txt",
"label": "AI Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 482,
"http_status": 404,
"relevant_lines": []
},
{
"id": "ai_policy_txt",
"url": "https://www.catchthemoment.ch/.well-known/ai-policy.txt",
"label": "AI Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 369,
"http_status": 404,
"relevant_lines": []
},
{
"id": "ward_txt",
"url": "https://www.catchthemoment.ch/.well-known/ward.txt",
"label": "WARD Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 364,
"http_status": 404,
"relevant_lines": []
}
],
"origin": "https://www.catchthemoment.ch",
"schema": "https://saferpage.de/schemas/ai-search-policy-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 5,
"found_file_count": 2,
"policy_file_count": 1,
"explicit_ai_bot_count": 0
},
"summary": "2 von 5 Policy-Datei(en) gefunden; 0 explizite KI-Bot-Regel(n) in robots.txt.",
"available": true,
"guardrails": [
"Nur feste Same-Origin-Policy-Dateien",
"Keine Off-Host-Redirects",
"64-KB-Body-Limit",
"Öffentlich nur Hash, Status und kurze relevante Zeilen"
],
"known_ai_bots": [
"GPTBot",
"ChatGPT-User",
"Google-Extended",
"ClaudeBot",
"PerplexityBot",
"CCBot"
],
"explicit_ai_bots": [],
"policy_file_count": 1,
"llms_ward_policy_status": "policy_file_found",
"robots_ai_policy_status": "generic_robots_policy"
},
"adtech_transparency_evidence": {
"files": [
{
"id": "ads_txt",
"url": "https://www.catchthemoment.ch/ads.txt",
"label": "ads.txt",
"reason": "",
"status": "found",
"body_size": 28542,
"truncated": false,
"body_sha256": "0a1d5ac0d493d0358aa3c396303b5d0b1e01beaa45ed64774333f61248ca443d",
"duration_ms": 1238,
"http_status": 200,
"ads_txt_policy": {
"entry_count": 16,
"rows_sample": [
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<title>page not found - fotoshooting",
"cert_authority_id": "Zürich</title>",
"publisher_id_hash": "39f9f04f647235f9"
},
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<meta property=\"og:title\" content=\"page not found - fotoshooting",
"cert_authority_id": "Zürich\" />",
"publisher_id_hash": "39f9f04f647235f9"
},
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<meta property=\"og:site_name\" content=\"fotoshooting",
"cert_authority_id": "Zürich\" />",
"publisher_id_hash": "39f9f04f647235f9"
},
{
"relationship": "\"@ID\":\"HTTPS:\\/\\/WWW.CATCHTHEMOMENT.CH\\/",
"exchange_domain": "<script type=\"application/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\/\\/schema.org\"",
"cert_authority_id": "",
"publisher_id_hash": "c52a7be03e75fba0"
},
{
"relationship": "\" I]){CONTAIN-INTRINSIC-SIZE:3000PX 1500",
"exchange_domain": "img:is([sizes=auto i]",
"cert_authority_id": "",
"publisher_id_hash": "6ef435f87eebe8af"
},
{
"relationship": "{\"DOMAINS\":[\"WWW.CATCHTHEMOMENT.CH\"]} );",
"exchange_domain": "gtag('set'",
"cert_authority_id": "",
"publisher_id_hash": "aa3c503ce8fc6009"
},
{
"relationship": "TRUE);",
"exchange_domain": "gtag(\"set\"",
"cert_authority_id": "",
"publisher_id_hash": "56a4fbdb1157584a"
},
{
"relationship": "BABYBAUCH FOTOGRAF",
"exchange_domain": "<link rel=\"alternate\" href=\"https://www.catchthemoment.ch/feed/\" type=\"application/rss+xml\" title=\"fotoshooting",
"cert_authority_id": "Zürich Posts RSS feed\"/>",
"publisher_id_hash": "39f9f04f647235f9"
}
],
"direct_count": 0,
"variable_keys": [
"</li><li id",
"</nav><div id",
"</table><div id",
"<a href",
"<a id",
"<article id",
"<body id",
"<div class"
],
"reseller_count": 0,
"variable_count": 138,
"invalid_line_count": 127,
"exchange_domain_count": 15,
"exchange_domains_sample": [
"</html><script id=\"prophoto\" type=\"application/json\">{\"ajaxurl\":\"https:\\/\\/www.catchthemoment.ch\\/wp-admin\\/admin-ajax.php\"",
"<a href=\"https://www.catchthemoment.ch\" class=\"text-home mi-type-internal mi-home mi-anchor-text first-menu-item\" title=\"fotoshooting",
"<a href=\"https://www.catchthemoment.ch\" title=\"fotoshooting",
"<img src=\"https://www.catchthemoment.ch/wp-content/uploads/pp/images/logo_1450521699.jpg\" id=\"logo-img\" width=\"444\" height=\"136\" alt=\"fotoshooting",
"<link rel=\"alternate\" href=\"https://www.catchthemoment.ch/feed/\" type=\"application/rss+xml\" title=\"fotoshooting",
"<meta property=\"og:site_name\" content=\"fotoshooting",
"<meta property=\"og:title\" content=\"page not found - fotoshooting",
"<script type=\"application/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\/\\/schema.org\""
]
},
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
],
"sellers_json_policy": []
},
{
"id": "app_ads_txt",
"url": "https://www.catchthemoment.ch/app-ads.txt",
"label": "app-ads.txt",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 402,
"http_status": 404,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
},
{
"id": "sellers_json",
"url": "https://www.catchthemoment.ch/sellers.json",
"label": "sellers.json",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 1383,
"http_status": 404,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
}
],
"origin": "https://www.catchthemoment.ch",
"schema": "https://saferpage.de/schemas/adtech-transparency-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 3,
"direct_count": 0,
"reseller_count": 0,
"found_file_count": 1,
"ads_txt_entry_count": 16,
"exchange_domain_count": 8,
"app_ads_txt_entry_count": 0,
"sellers_json_seller_count": 0
},
"summary": "1 von 3 AdTech-Transparenzdatei(en) gefunden; 0 DIRECT- und 0 RESELLER-Zeile(n).",
"available": true,
"guardrails": [
"Nur feste Same-Origin-AdTech-Dateien",
"Keine Off-Host-Redirects",
"64-KB-Body-Limit",
"Öffentlich nur Hash, Status, Zähler und kurze relevante Zeilen"
],
"direct_count": 0,
"ads_txt_found": true,
"reseller_count": 0,
"app_ads_txt_found": false,
"sellers_json_found": false,
"ads_txt_entry_count": 16,
"exchange_domain_count": 8,
"sellers_json_parse_ok": false,
"app_ads_txt_entry_count": 0,
"sellers_json_seller_count": 0
},
"security_trust_policy_evidence": {
"files": [
{
"id": "security_txt",
"url": "https://www.catchthemoment.ch/.well-known/security.txt",
"label": "security.txt",
"reason": "",
"status": "found",
"body_size": 26253,
"truncated": false,
"body_sha256": "f89ef12ff7a32ff036c2b02225586f2786bdea64f62ff1a97ff18afd7efc00c0",
"duration_ms": 239,
"http_status": 200,
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
],
"security_txt_policy": {
"field_count": 0,
"contact_count": 0,
"expires_values": [],
"fields_present": [],
"policy_present": false,
"contact_samples": [],
"expires_present": false,
"canonical_present": false,
"encryption_present": false,
"preferred_languages": []
}
},
{
"id": "security_txt_legacy",
"url": "https://www.catchthemoment.ch/security.txt",
"label": "security.txt legacy",
"reason": "",
"status": "found",
"body_size": 28531,
"truncated": false,
"body_sha256": "ceef3a3d481f0213320fcb6629cc0c9b2a009bfa4a5d5df795b19b75a188e75c",
"duration_ms": 219,
"http_status": 200,
"relevant_lines": [
"<!DOCTYPE html>",
"<html lang=\"de\"><!-- p5 build #406 -->",
"<head>",
"<title>Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</title>",
"<meta charset=\"UTF-8\" />",
"<meta http-equiv=\"imagetoolbar\" content=\"no\" />",
"<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />",
"<meta name=\"description\" content=\"Fotostudio\" />",
"<meta name=\"pinterest\" content=\"nohover\" />",
"<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css\" id=\"fa-styles\"/>",
"<!-- wp_head() elements -->",
"<meta name='robots' content='noindex, follow' />",
"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https://yoast.com/product/yoast-seo-wordpress/ -->",
"<meta property=\"og:locale\" content=\"de_DE\" />",
"<meta property=\"og:title\" content=\"Page Not Found - Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />",
"<meta property=\"og:site_name\" content=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" />"
],
"security_txt_policy": {
"field_count": 0,
"contact_count": 0,
"expires_values": [],
"fields_present": [],
"policy_present": false,
"contact_samples": [],
"expires_present": false,
"canonical_present": false,
"encryption_present": false,
"preferred_languages": []
}
}
],
"origin": "https://www.catchthemoment.ch",
"schema": "https://saferpage.de/schemas/security-trust-policy-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 2,
"field_count": 0,
"contact_count": 0,
"found_file_count": 2,
"preferred_well_known_found": 1
},
"summary": "2 von 2 security.txt-Ziel(en) gefunden; 0 Kontaktfeld(er), 0 strukturierte Feld(er).",
"available": true,
"guardrails": [
"Nur feste Same-Origin-security.txt-Ziele",
"Keine Off-Host-Redirects",
"64-KB-Body-Limit",
"Öffentlich nur Hash, Status und kurze relevante Zeilen"
],
"field_count": 0,
"contact_count": 0,
"fields_present": [],
"policy_present": false,
"expires_present": false,
"encryption_present": false,
"security_txt_found": true,
"preferred_well_known_found": true
},
"site_coverage_analysis": {
"color": "red",
"pages": [
{
"url": "https://www.catchthemoment.ch/kontakt",
"path": "/kontakt",
"text": "Kontakt",
"source": "homepage_link+sitemap",
"category": "kontakt",
"priority": 94
},
{
"url": "https://www.catchthemoment.ch/kundengalerie/account",
"path": "/kundengalerie/account",
"text": "",
"source": "sitemap",
"category": "login",
"priority": 76
},
{
"url": "https://www.catchthemoment.ch/kundengalerie/cart",
"path": "/kundengalerie/cart",
"text": "",
"source": "sitemap",
"category": "checkout",
"priority": 74
},
{
"url": "https://www.catchthemoment.ch/kundengalerie/checkout",
"path": "/kundengalerie/checkout",
"text": "",
"source": "sitemap",
"category": "checkout",
"priority": 74
},
{
"url": "https://www.catchthemoment.ch/preise",
"path": "/preise",
"text": "",
"source": "sitemap",
"category": "preise",
"priority": 62
},
{
"url": "https://www.catchthemoment.ch/preise-2",
"path": "/preise-2",
"text": "Preise",
"source": "homepage_link+sitemap",
"category": "preise",
"priority": 62
},
{
"url": "https://www.catchthemoment.ch/",
"path": "/",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://www.catchthemoment.ch/audrey-bousquet-gewinnt-den-elite-model-look-final-2013",
"path": "/audrey-bousquet-gewinnt-den-elite-model-look-final-2013",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://www.catchthemoment.ch/baby-fotograf",
"path": "/baby-fotograf",
"text": "Babies",
"source": "homepage_link+sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://www.catchthemoment.ch/baby-fotoshooting",
"path": "/baby-fotoshooting",
"text": "Baby Fotograf",
"source": "homepage_link+sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://www.catchthemoment.ch/babybauch-fotoshooting-zuerich",
"path": "/babybauch-fotoshooting-zuerich",
"text": "Babybauch Fotos",
"source": "homepage_link+sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://www.catchthemoment.ch/babybauchshooting",
"path": "/babybauchshooting",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
}
],
"score": 26,
"status": "kritisch",
"summary": "30 interne Linkziele erkannt (120 aus Sitemap), 4 priorisierte Unterseite(n) zusätzlich abgerufen.",
"findings": [
{
"id": "important_pages_not_discovered",
"title": "Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden",
"public": true,
"category": "crawl",
"severity": "warning"
},
{
"id": "sampled_internal_tracking_detected",
"title": "Tracking-Signale auf geprüften Unterseiten",
"public": true,
"category": "crawl",
"severity": "info"
},
{
"id": "sampled_form_privacy_context_missing",
"title": "Formular-Unterseite ohne klaren Datenschutzkontext",
"public": true,
"category": "crawl",
"severity": "warning"
},
{
"id": "privacy_policy_provider_disclosure_gap",
"title": "Erkannte Anbieter fehlen in der Datenschutzerklärung",
"public": true,
"category": "privacy",
"severity": "warning",
"missing_providers": [
"Google",
"Google Fonts",
"Google Tag Manager",
"Meta/Facebook",
"Google Analytics"
]
}
],
"robots_ok": true,
"categories": {
"login": 1,
"preise": 2,
"kontakt": 1,
"checkout": 2,
"unterseite": 24
},
"sample_limit": 4,
"sampled_count": 4,
"sampled_pages": [
{
"ok": true,
"url": "https://www.catchthemoment.ch/kontakt",
"path": "/kontakt",
"audit": {
"form_count": 1,
"finding_ids": [
"tracking_without_consent_hint",
"privacy_policy_hint_missing",
"imprint_missing"
],
"cookie_count": 0,
"imprint_found": false,
"consent_hint_found": false,
"reject_option_found": false,
"privacy_policy_found": false,
"tracking_script_count": 1,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 1,
"title": "Kontakt » Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich",
"status": 200,
"category": "kontakt",
"duration_ms": 528,
"privacy_hint": false,
"privacy_policy_audit": []
},
{
"ok": true,
"url": "https://www.catchthemoment.ch/kundengalerie/account",
"path": "/kundengalerie/account",
"audit": {
"form_count": 0,
"finding_ids": [
"tracking_without_consent_hint",
"privacy_policy_hint_missing",
"imprint_missing",
"operator_contact_missing"
],
"cookie_count": 0,
"imprint_found": false,
"consent_hint_found": false,
"reject_option_found": false,
"privacy_policy_found": false,
"tracking_script_count": 1,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 0,
"title": "Konto » Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich",
"status": 200,
"category": "login",
"duration_ms": 1506,
"privacy_hint": false,
"privacy_policy_audit": []
},
{
"ok": true,
"url": "https://www.catchthemoment.ch/kundengalerie/cart",
"path": "/kundengalerie/cart",
"audit": {
"form_count": 0,
"finding_ids": [
"tracking_without_consent_hint",
"privacy_policy_hint_missing",
"imprint_missing",
"operator_contact_missing"
],
"cookie_count": 0,
"imprint_found": false,
"consent_hint_found": false,
"reject_option_found": false,
"privacy_policy_found": false,
"tracking_script_count": 1,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 0,
"title": "Warenkorb » Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich",
"status": 200,
"category": "checkout",
"duration_ms": 516,
"privacy_hint": false,
"privacy_policy_audit": []
},
{
"ok": true,
"url": "https://www.catchthemoment.ch/kundengalerie/checkout",
"path": "/kundengalerie/checkout",
"audit": {
"form_count": 0,
"finding_ids": [
"tracking_without_consent_hint",
"privacy_policy_hint_missing",
"imprint_missing",
"operator_contact_missing"
],
"cookie_count": 0,
"imprint_found": false,
"consent_hint_found": false,
"reject_option_found": false,
"privacy_policy_found": false,
"tracking_script_count": 1,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 0,
"title": "Checkout » Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich",
"status": 200,
"category": "checkout",
"duration_ms": 484,
"privacy_hint": false,
"privacy_policy_audit": []
}
],
"robots_checked": true,
"sitemap_sources": [
"https://www.catchthemoment.ch/sitemap_index.xml",
"https://www.catchthemoment.ch/sitemap.xml",
"https://www.catchthemoment.ch/post-sitemap.xml",
"https://www.catchthemoment.ch/page-sitemap.xml",
"https://www.catchthemoment.ch/attachment-sitemap.xml"
],
"sitemap_available": true,
"sitemap_url_count": 120,
"homepage_link_count": 55,
"internal_link_count": 30,
"privacy_policy_audit": [],
"sitemap_source_count": 5,
"provider_disclosure_audit": {
"color": "red",
"found": [],
"score": 0,
"checks": [
{
"id": "analytics_google",
"found": false,
"category": "analytics",
"evidence": [
"_ga",
"_ga_LLJ6DNTE7Q"
],
"keywords": [
"google",
"tracking",
"analytics",
"werbung"
],
"provider": "Google",
"category_label": "Analytics"
},
{
"id": "fonts_google_fonts",
"found": false,
"category": "fonts",
"evidence": [
"fonts.gstatic.com",
"fonts.googleapis.com"
],
"keywords": [
"google fonts",
"fonts.googleapis",
"fonts.gstatic"
],
"provider": "Google Fonts",
"category_label": "Schriften"
},
{
"id": "tag_manager_google_tag_manager",
"found": false,
"category": "tag_manager",
"evidence": [
"https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"googletagmanager.com"
],
"keywords": [
"google tag manager",
"tag manager",
"googletagmanager",
"gtm-"
],
"provider": "Google Tag Manager",
"category_label": "Tracking"
},
{
"id": "social_tracking_meta_facebook",
"found": false,
"category": "social_tracking",
"evidence": [
"connect.facebook.net"
],
"keywords": [
"facebook",
"meta",
"facebook pixel",
"fbq",
"_fbp"
],
"provider": "Meta/Facebook",
"category_label": "Social/Tracking"
},
{
"id": "analytics_google_analytics",
"found": false,
"category": "analytics",
"evidence": [
"region1.google-analytics.com"
],
"keywords": [
"google analytics",
"analytics.google",
"_ga",
"ga4",
"gtag"
],
"provider": "Google Analytics",
"category_label": "Analytics"
}
],
"reason": "no_policy_text",
"status": "kritisch",
"missing": [
"Google",
"Google Fonts",
"Google Tag Manager",
"Meta/Facebook",
"Google Analytics"
],
"summary": "5 technische Anbieter erkannt, aber keine Datenschutzerklärung im Sample ausgewertet.",
"available": true,
"missing_count": 5,
"detected_count": 5,
"mentioned_count": 0
},
"important_categories_found": [
"kontakt"
],
"sampled_tracking_page_count": 4,
"sampled_form_privacy_gap_count": 1,
"sitemap_candidate_source_count": 2
},
"page_analysis": {
"h1": [
"Fotostudio Catch The Moment"
],
"h2": [
"<a href=\"https://www.catchthemoment.ch\" title=\"Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich\" rel=\"home\">Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich</a>",
"<strong>Wir fotografieren fürs Leben gerne</strong>"
],
"title": "Fotostudio Catch The Moment » Fotoshooting, Hochzeitsfotograf, Babybauch Fotograf, Zürich",
"keywords": [
[
"fotograf",
13
],
[
"zürich",
12
],
[
"fotostudio",
10
],
[
"fotoshooting",
9
],
[
"catch",
7
],
[
"moment",
7
],
[
"hochzeitsfotograf",
7
],
[
"babybauch",
6
],
[
"fotos",
5
],
[
"patrik",
5
]
],
"language": "de",
"description": "Fotostudio Zürich, Fotoshooting Zürich, Fotograf, Fotostudio, Hochzeitsfotograf",
"favicon_url": "https://www.catchthemoment.ch/favicon.ico",
"link_counts": {
"external": 9,
"internal": 46
},
"preview_image": "/cache/screenshots/catchthemoment.ch-160x150-f81a049ccaaf23d0f8.png",
"screenshot_url": "/cache/screenshots/catchthemoment.ch-160x150-f81a049ccaaf23d0f8.png",
"external_scripts": [
"https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"https://www.google.com/recaptcha/api.js?render=6Lcd2WkgAAAAAHXBM7FYBPuJFq3At3pcRgulLFZ0&ver=3.0"
],
"browser_final_url": "https://www.catchthemoment.ch/",
"meta_preview_image": "https://www.catchthemoment.ch/wp-content/uploads/pp/images/logo_1450521699.jpg",
"screenshot_renderer": "playwright-chromium",
"external_link_targets": [
{
"host": "hochzeitsfotograf-patrikgerber.ch",
"count": 3,
"examples": [
{
"href": "https://www.hochzeitsfotograf-patrikgerber.ch",
"text": ""
},
{
"href": "http://www.hochzeitsfotograf-patrikgerber.ch/hochzeitsfotograf/",
"text": "Hochzeitsfotograf"
},
{
"href": "http://www.hochzeitsfotograf-patrikgerber.ch/hochzeitsreportage/",
"text": "Hochzeitsreportagen"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 3
},
{
"host": "aceclub6.com",
"count": 1,
"examples": [
{
"href": "http://aceclub6.com/",
"text": "mega888"
}
],
"nofollow": 0,
"strength": "weak",
"follow_count": 1
},
{
"host": "fotograf-engadin.ch",
"count": 1,
"examples": [
{
"href": "https://www.fotograf-engadin.ch/",
"text": "Fotograf im Engadin"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 1
},
{
"host": "fotograf-zermatt.ch",
"count": 1,
"examples": [
{
"href": "http://www.fotograf-zermatt.ch",
"text": "Fotograf Zermatt"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 1
},
{
"host": "photobooth.ch",
"count": 1,
"examples": [
{
"href": "http://www.photobooth.ch",
"text": "www.photobooth.ch"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 1
},
{
"host": "pro.photo",
"count": 1,
"examples": [
{
"href": "https://pro.photo/",
"text": "ProPhoto Blog Template"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 1
},
{
"host": "utokulm.ch",
"count": 1,
"examples": [
{
"href": "https://utokulm.ch/de",
"text": "Hotel Uto Kulm in Zürich"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 1
}
]
},
"browser_analysis": {
"cookies": {
"items": [
{
"name": "_GRECAPTCHA",
"domain": "www.google.com",
"secure": true,
"expires": 1796869244.039903,
"http_only": true,
"same_site": "None"
},
{
"name": "_ga_LLJ6DNTE7Q",
"domain": ".catchthemoment.ch",
"secure": false,
"expires": 1815877243.178019,
"http_only": false,
"same_site": "Lax"
},
{
"name": "_ga",
"domain": ".catchthemoment.ch",
"secure": false,
"expires": 1815877243.178249,
"http_only": false,
"same_site": "Lax"
}
],
"total": 3,
"third_party": 1
},
"storage": {
"total": 2,
"local_storage_keys": [
"_grecaptcha"
],
"tracking_key_hints": [],
"local_storage_total": 1,
"session_storage_keys": [
"wpEmojiSettingsSupports"
],
"session_storage_total": 1
},
"findings": [
{
"id": "browser_privacy_relevant_third_parties",
"title": "Datenschutzrelevante Drittanbieter im Browseraufruf",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "remote_google_fonts_detected",
"title": "Remote-Schriften von Google erkannt",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "gpc_privacy_domains_present",
"count": 3,
"title": "Datenschutzrelevante Kontakte trotz GPC-Signal",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "gpc_third_party_cookies",
"count": 1,
"title": "Drittanbieter-Cookies trotz GPC-Signal",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "cmp_api_not_detected",
"title": "Keine gängige CMP-/TCF-API im Browser erkannt",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "many_browser_third_parties",
"title": "Viele Drittanbieter-Domains beim Laden",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "third_country_transfer_review",
"title": "Drittland-/US-Anbieter im Browseraufruf prüfen",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "unknown_vendor_jurisdiction",
"title": "Anbieter-Jurisdiktion nicht klar ableitbar",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "third_party_full_referrer_leak",
"count": 2,
"title": "Drittanbieter können vollen Referrer-Kontext erhalten",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "third_party_page_url_parameter",
"count": 1,
"title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "third_party_sensitive_query_leak",
"count": 1,
"title": "Sensible URL-Schlüssel im Drittanbieter-Kontext",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "browser_webgl_fingerprinting",
"count": 3,
"title": "WebGL-Merkmale wurden ausgelesen",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "consent_state_gpc_evidence_review",
"title": "Consent-Zustand: GPC mit Tracking-Hinweisen",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "beacon_api_usage",
"count": 3,
"title": "Beacon-/Keepalive-Telemetrie erkannt",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"renderer": "playwright-chromium",
"final_url": "https://www.catchthemoment.ch/",
"consent_ui": {
"accept_controls": [],
"accept_max_area": 0,
"reject_controls": [],
"reject_max_area": 0,
"settings_controls": [],
"first_layer_summary": "Akzeptieren 0 / Ablehnen 0 / Einstellungen 0",
"cookie_context_found": false,
"reject_less_prominent": false,
"visible_control_count": 8,
"reject_prominence_ratio": 0
},
"gpc_signal": {
"error": "",
"enabled": true,
"storage": {
"total": 2,
"tracking_key_hints": [],
"local_storage_total": 1,
"session_storage_total": 1
},
"cookie_count": 3,
"request_count": 50,
"sec_gpc_header": true,
"navigator_value": true,
"contacted_domains": [
{
"host": "catchthemoment.ch",
"count": 30,
"category": "other",
"provider": "catchthemoment.ch",
"third_party": false,
"category_label": "Sonstige",
"resource_types": {
"font": 1,
"image": 17,
"script": 7,
"document": 1,
"stylesheet": 4
}
},
{
"host": "google.com",
"count": 5,
"category": "other",
"provider": "google.com",
"third_party": true,
"category_label": "Sonstige",
"resource_types": {
"xhr": 1,
"fetch": 1,
"script": 2,
"document": 1
}
},
{
"host": "gstatic.com",
"count": 5,
"category": "cdn",
"provider": "Google Static",
"third_party": true,
"category_label": "CDN",
"resource_types": {
"image": 1,
"other": 1,
"script": 2,
"stylesheet": 1
}
},
{
"host": "fonts.gstatic.com",
"count": 3,
"category": "fonts",
"provider": "Google Fonts",
"third_party": true,
"category_label": "Schriften",
"resource_types": {
"font": 3
}
},
{
"host": "connect.facebook.net",
"count": 2,
"category": "social_tracking",
"provider": "Meta/Facebook",
"third_party": true,
"category_label": "Social/Tracking",
"resource_types": {
"script": 2
}
},
{
"host": "fonts.googleapis.com",
"count": 1,
"category": "fonts",
"provider": "Google Fonts",
"third_party": true,
"category_label": "Schriften",
"resource_types": {
"stylesheet": 1
}
},
{
"host": "googletagmanager.com",
"count": 1,
"category": "tag_manager",
"provider": "Google Tag Manager",
"third_party": true,
"category_label": "Tag-Manager",
"resource_types": {
"script": 1
}
},
{
"host": "netdna.bootstrapcdn.com",
"count": 1,
"category": "other",
"provider": "netdna.bootstrapcdn.com",
"third_party": true,
"category_label": "Sonstige",
"resource_types": {
"stylesheet": 1
}
},
{
"host": "prophoto.s3.amazonaws.com",
"count": 1,
"category": "other",
"provider": "prophoto.s3.amazonaws.com",
"third_party": true,
"category_label": "Sonstige",
"resource_types": {
"image": 1
}
},
{
"host": "region1.google-analytics.com",
"count": 1,
"category": "analytics",
"provider": "Google Analytics",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"fetch": 1
}
}
],
"contacted_domain_count": 10,
"privacy_relevant_domains": [
{
"host": "connect.facebook.net",
"count": 2,
"category": "social_tracking",
"provider": "Meta/Facebook",
"third_party": true,
"category_label": "Social/Tracking",
"resource_types": {
"script": 2
}
},
{
"host": "googletagmanager.com",
"count": 1,
"category": "tag_manager",
"provider": "Google Tag Manager",
"third_party": true,
"category_label": "Tag-Manager",
"resource_types": {
"script": 1
}
},
{
"host": "region1.google-analytics.com",
"count": 1,
"category": "analytics",
"provider": "Google Analytics",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"fetch": 1
}
}
],
"third_party_cookie_count": 1,
"third_party_domain_count": 9,
"privacy_relevant_domain_count": 3
},
"screenshot": {
"fit": "contain",
"width": 160,
"height": 150,
"source_width": 1024,
"source_height": 960,
"source_capture": "full_page",
"capture_version": "contain-v3-fullpage-to-160x150"
},
"consent_apis": {
"cmpapi": false,
"tcfapi": false,
"onetrust": false,
"cookiebot": false,
"data_layer": true,
"cmp_detected": false,
"usercentrics": false,
"google_tag_data": true
},
"accept_signal": {
"error": "",
"enabled": false,
"storage": {
"total": 0,
"tracking_key_hints": [],
"local_storage_total": 0,
"session_storage_total": 0
},
"clicked_text": "",
"accept_clicked": false,
"accept_available": false,
"contacted_domains": [],
"contacted_domain_count": 0,
"new_domains_after_accept": [],
"privacy_relevant_domains": [],
"third_party_domain_count": 0,
"cookie_count_after_accept": 0,
"cookie_count_before_accept": 0,
"request_count_after_accept": 0,
"storage_count_after_accept": 0,
"request_count_before_accept": 0,
"new_cookie_count_after_accept": 0,
"privacy_relevant_domain_count": 0,
"new_request_count_after_accept": 0,
"third_party_cookie_count_after_accept": 0,
"storage_tracking_hint_count_after_accept": 0,
"new_privacy_relevant_domains_after_accept": [],
"new_privacy_relevant_domain_count_after_accept": 0
},
"request_count": 50,
"top_providers": [
{
"provider": "google.com",
"request_count": 5
},
{
"provider": "Google Static",
"request_count": 5
},
{
"provider": "Google Fonts",
"request_count": 4
},
{
"provider": "Meta/Facebook",
"request_count": 2
},
{
"provider": "Google Tag Manager",
"request_count": 1
},
{
"provider": "netdna.bootstrapcdn.com",
"request_count": 1
},
{
"provider": "prophoto.s3.amazonaws.com",
"request_count": 1
},
{
"provider": "Google Analytics",
"request_count": 1
}
],
"request_samples": [
{
"host": "netdna.bootstrapcdn.com",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "stylesheet",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "googletagmanager.com",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 2,
"query_keys": [
"id"
],
"third_party": true,
"resource_type": "script",
"query_key_count": 1,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "fonts.googleapis.com",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 1,
"query_keys": [
"family"
],
"third_party": true,
"resource_type": "stylesheet",
"query_key_count": 1,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "prophoto.s3.amazonaws.com",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 2,
"query_keys": [],
"third_party": true,
"resource_type": "image",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "google.com",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 2,
"query_keys": [
"render",
"ver"
],
"third_party": true,
"resource_type": "script",
"query_key_count": 2,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "fonts.gstatic.com",
"method": "GET",
"referrer": {
"host": "fonts.googleapis.com",
"has_path": false,
"has_query": false,
"same_site": false,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "font",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "gstatic.com",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "script",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "connect.facebook.net",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 2,
"query_keys": [],
"third_party": true,
"resource_type": "script",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "connect.facebook.net",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 2,
"query_keys": [
"hash"
],
"third_party": true,
"resource_type": "script",
"query_key_count": 1,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "region1.google-analytics.com",
"method": "POST",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 2,
"query_keys": [
"v",
"tid",
"gtm",
"_p",
"gcd",
"npa",
"dma_cps",
"dma",
"gdid",
"_eu",
"are",
"cid"
],
"third_party": true,
"resource_type": "fetch",
"query_key_count": 38,
"url_value_param_count": 1,
"sensitive_query_key_count": 1,
"target_url_value_param_count": 1
},
{
"host": "google.com",
"method": "GET",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 3,
"query_keys": [
"ar",
"k",
"co",
"hl",
"v",
"size",
"anchor-ms",
"execute-ms",
"cb"
],
"third_party": true,
"resource_type": "document",
"query_key_count": 9,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "gstatic.com",
"method": "GET",
"referrer": {
"host": "google.com",
"has_path": false,
"has_query": false,
"same_site": false,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "stylesheet",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "gstatic.com",
"method": "GET",
"referrer": {
"host": "google.com",
"has_path": false,
"has_query": false,
"same_site": false,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "script",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "google.com",
"method": "GET",
"referrer": null,
"has_query": true,
"path_depth": 3,
"query_keys": [
"hl",
"v"
],
"third_party": true,
"resource_type": "script",
"query_key_count": 2,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "gstatic.com",
"method": "GET",
"referrer": {
"host": "gstatic.com",
"has_path": true,
"has_query": false,
"same_site": false,
"path_depth": 4,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 3,
"query_keys": [],
"third_party": true,
"resource_type": "image",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "fonts.gstatic.com",
"method": "GET",
"referrer": {
"host": "google.com",
"has_path": false,
"has_query": false,
"same_site": false,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "font",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "fonts.gstatic.com",
"method": "GET",
"referrer": {
"host": "google.com",
"has_path": false,
"has_query": false,
"same_site": false,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "font",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "gstatic.com",
"method": "GET",
"referrer": {
"host": "google.com",
"has_path": false,
"has_query": false,
"same_site": false,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": false,
"path_depth": 4,
"query_keys": [],
"third_party": true,
"resource_type": "other",
"query_key_count": 0,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "google.com",
"method": "POST",
"referrer": {
"host": "google.com",
"has_path": true,
"has_query": true,
"same_site": false,
"path_depth": 3,
"query_keys": [
"ar",
"k",
"co",
"hl",
"v",
"size",
"anchor-ms",
"execute-ms",
"cb"
],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 3,
"query_keys": [
"k"
],
"third_party": true,
"resource_type": "xhr",
"query_key_count": 1,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
},
{
"host": "google.com",
"method": "POST",
"referrer": {
"host": "catchthemoment.ch",
"has_path": false,
"has_query": false,
"same_site": true,
"path_depth": 0,
"query_keys": [],
"sensitive_query_key_count": 0
},
"has_query": true,
"path_depth": 3,
"query_keys": [
"k"
],
"third_party": true,
"resource_type": "fetch",
"query_key_count": 1,
"url_value_param_count": 0,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 0
}
],
"cmp_consent_state": {
"tcf": {
"api_found": false,
"vendor_li": [],
"cmp_loaded": false,
"cmp_status": "",
"purpose_li": [],
"event_status": "",
"gdpr_applies": null,
"ping_success": false,
"policy_version": "",
"vendor_consents": [],
"vendor_li_count": 0,
"purpose_consents": [],
"purpose_li_count": 0,
"tc_string_length": 0,
"tc_string_present": false,
"vendor_consent_count": 0,
"purpose_consent_count": 0
},
"onetrust": {
"found": false,
"active_groups": [],
"active_group_count": 0
},
"cookiebot": {
"found": false,
"declined": false,
"consented": false,
"has_response": false,
"consent_marketing": null,
"consent_statistics": null,
"consent_preferences": null
},
"usercentrics": {
"found": false,
"has_response": false,
"services_count": 0,
"accepted_services_count": 0
}
},
"contacted_domains": [
{
"host": "catchthemoment.ch",
"count": 30,
"category": "other",
"provider": "catchthemoment.ch",
"third_party": false,
"category_label": "Sonstige",
"resource_types": {
"font": 1,
"image": 17,
"script": 7,
"document": 1,
"stylesheet": 4
}
},
{
"host": "google.com",
"count": 5,
"category": "other",
"provider": "google.com",
"third_party": true,
"category_label": "Sonstige",
"resource_types": {
"xhr": 1,
"fetch": 1,
"script": 2,
"document": 1
}
},
{
"host": "gstatic.com",
"count": 5,
"category": "cdn",
"provider": "Google Static",
"third_party": true,
"category_label": "CDN",
"resource_types": {
"image": 1,
"other": 1,
"script": 2,
"stylesheet": 1
}
},
{
"host": "fonts.gstatic.com",
"count": 3,
"category": "fonts",
"provider": "Google Fonts",
"third_party": true,
"category_label": "Schriften",
"resource_types": {
"font": 3
}
},
{
"host": "connect.facebook.net",
"count": 2,
"category": "social_tracking",
"provider": "Meta/Facebook",
"third_party": true,
"category_label": "Social/Tracking",
"resource_types": {
"script": 2
}
},
{
"host": "fonts.googleapis.com",
"count": 1,
"category": "fonts",
"provider": "Google Fonts",
"third_party": true,
"category_label": "Schriften",
"resource_types": {
"stylesheet": 1
}
},
{
"host": "googletagmanager.com",
"count": 1,
"category": "tag_manager",
"provider": "Google Tag Manager",
"third_party": true,
"category_label": "Tag-Manager",
"resource_types": {
"script": 1
}
},
{
"host": "netdna.bootstrapcdn.com",
"count": 1,
"category": "other",
"provider": "netdna.bootstrapcdn.com",
"third_party": true,
"category_label": "Sonstige",
"resource_types": {
"stylesheet": 1
}
},
{
"host": "prophoto.s3.amazonaws.com",
"count": 1,
"category": "other",
"provider": "prophoto.s3.amazonaws.com",
"third_party": true,
"category_label": "Sonstige",
"resource_types": {
"image": 1
}
},
{
"host": "region1.google-analytics.com",
"count": 1,
"category": "analytics",
"provider": "Google Analytics",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"fetch": 1
}
}
],
"consent_interaction": {
"clicked_text": "",
"reject_clicked": false,
"reject_available": false,
"new_domains_after_reject": [],
"cookie_count_after_reject": 3,
"request_count_after_reject": 0,
"storage_count_after_reject": 2,
"new_cookie_count_after_reject": 0,
"new_request_count_after_reject": 0,
"privacy_relevant_domains_after_reject": [],
"storage_tracking_hint_count_after_reject": 0,
"privacy_relevant_domain_count_after_reject": 0
},
"privacy_api_metrics": {
"api_calls": {
"fetch_keepalive_count": 1,
"webgl_parameter_count": 3,
"mutation_observer_count": 2,
"keyboard_input_listener_count": 4,
"session_interaction_listener_count": 6
},
"beacon_count": 0,
"webgl_read_count": 0,
"canvas_read_count": 0,
"audio_context_count": 0,
"canvas_export_count": 0,
"fetch_keepalive_count": 1,
"webgl_parameter_count": 3,
"mutation_observer_count": 2,
"keyboard_input_listener_count": 4,
"session_interaction_listener_count": 6
},
"tcf_consent_analysis": {
"color": "green",
"score": 100,
"status": "unauffällig",
"summary": "TCF-Decoder: 0 Zweck(e) mit Consent/LI-Signal, 0 Vendor-Consent(s), 0 Vendor-LI-Signal(e).",
"findings": [],
"api_found": false,
"available": false,
"cmp_loaded": false,
"cmp_status": "",
"event_status": "",
"gdpr_applies": null,
"ping_success": false,
"purpose_rows": [
{
"id": 1,
"label": "Informationen auf einem Gerät speichern und/oder abrufen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 2,
"label": "Einfache Anzeigen auswählen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 3,
"label": "Personalisiertes Anzeigen-Profil erstellen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 4,
"label": "Personalisierte Anzeigen auswählen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 5,
"label": "Personalisiertes Inhalts-Profil erstellen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 6,
"label": "Personalisierte Inhalte auswählen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 7,
"label": "Anzeigen-Leistung messen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 8,
"label": "Inhalte-Leistung messen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 9,
"label": "Marktforschung zur Generierung von Erkenntnissen nutzen",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 10,
"label": "Produkte entwickeln und verbessern",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
},
{
"id": 11,
"label": "Begrenzte Daten zur Anzeigen-Auswahl verwenden",
"status": "nicht_erlaubt",
"risk_level": "niedrig",
"consent_granted": false,
"legitimate_interest_granted": false
}
],
"vendor_li_ids": [],
"policy_version": "",
"vendor_li_count": 0,
"purpose_li_count": 0,
"tc_string_length": 0,
"tc_string_present": false,
"vendor_consent_ids": [],
"granted_purpose_rows": [],
"vendor_consent_count": 0,
"purpose_consent_count": 0,
"high_risk_purpose_count": 0,
"medium_risk_purpose_count": 0
},
"consent_journey_matrix": {
"color": "yellow",
"items": [
{
"host": "connect.facebook.net",
"states": {
"gpc": 2,
"default": 2
},
"category": "social_tracking",
"provider": "Meta/Facebook",
"category_label": "Social/Tracking",
"privacy_relevant": true,
"total_request_count": 4
},
{
"host": "region1.google-analytics.com",
"states": {
"gpc": 1,
"default": 1
},
"category": "analytics",
"provider": "Google Analytics",
"category_label": "Analytics",
"privacy_relevant": true,
"total_request_count": 2
},
{
"host": "googletagmanager.com",
"states": {
"gpc": 1,
"default": 1
},
"category": "tag_manager",
"provider": "Google Tag Manager",
"category_label": "Tag-Manager",
"privacy_relevant": true,
"total_request_count": 2
},
{
"host": "gstatic.com",
"states": {
"gpc": 5,
"default": 5
},
"category": "cdn",
"provider": "Google Static",
"category_label": "CDN",
"privacy_relevant": false,
"total_request_count": 10
},
{
"host": "google.com",
"states": {
"gpc": 5,
"default": 5
},
"category": "other",
"provider": "google.com",
"category_label": "Sonstige",
"privacy_relevant": false,
"total_request_count": 10
},
{
"host": "fonts.gstatic.com",
"states": {
"gpc": 3,
"default": 3
},
"category": "fonts",
"provider": "Google Fonts",
"category_label": "Schriften",
"privacy_relevant": false,
"total_request_count": 6
},
{
"host": "fonts.googleapis.com",
"states": {
"gpc": 1,
"default": 1
},
"category": "fonts",
"provider": "Google Fonts",
"category_label": "Schriften",
"privacy_relevant": false,
"total_request_count": 2
},
{
"host": "netdna.bootstrapcdn.com",
"states": {
"gpc": 1,
"default": 1
},
"category": "other",
"provider": "netdna.bootstrapcdn.com",
"category_label": "Sonstige",
"privacy_relevant": false,
"total_request_count": 2
},
{
"host": "prophoto.s3.amazonaws.com",
"states": {
"gpc": 1,
"default": 1
},
"category": "other",
"provider": "prophoto.s3.amazonaws.com",
"category_label": "Sonstige",
"privacy_relevant": false,
"total_request_count": 2
}
],
"score": 76,
"states": [
{
"id": "default",
"label": "Erstaufruf",
"description": "Kontakte ohne Nutzeraktion",
"domain_count": 9,
"request_count": 20,
"privacy_relevant_domain_count": 3
},
{
"id": "reject_new",
"label": "Nach Ablehnen neu",
"description": "Neue Kontakte nach Ablehnen-Klick",
"domain_count": 0,
"request_count": 0,
"privacy_relevant_domain_count": 0
},
{
"id": "accept_new",
"label": "Nach Akzeptieren neu",
"description": "Neue Kontakte nach Akzeptieren-Klick",
"domain_count": 0,
"request_count": 0,
"privacy_relevant_domain_count": 0
},
{
"id": "gpc",
"label": "GPC-Aufruf",
"description": "Kontakte bei Global Privacy Control",
"domain_count": 9,
"request_count": 20,
"privacy_relevant_domain_count": 3
}
],
"status": "prüfen",
"summary": "Consent-Journey: 0 neue Datenschutz-Domain(s) nach Ablehnen, 0 nach Akzeptieren, 3 im GPC-Aufruf.",
"gpc_privacy_relevant_domain_count": 3,
"accept_privacy_relevant_domain_count": 0,
"reject_privacy_relevant_domain_count": 0
},
"consent_state_evidence": {
"rows": [
{
"id": "default",
"label": "Erstaufruf",
"status": "ohne Nutzeraktion",
"evidence": "Baseline aus erstem Chromium-Aufruf ohne Banner-Interaktion.",
"risk_level": "mittel",
"cookie_count": 3,
"domain_count": 10,
"request_count": 50,
"storage_total": 2,
"new_cookie_count": 3,
"third_party_cookie_count": 0,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 3
},
{
"id": "reject",
"label": "Nach Ablehnen",
"status": "nicht verfügbar",
"evidence": "",
"risk_level": "niedrig",
"cookie_count": 3,
"domain_count": 0,
"request_count": 0,
"storage_total": 2,
"new_cookie_count": 0,
"third_party_cookie_count": 0,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 0
},
{
"id": "accept",
"label": "Nach Akzeptieren",
"status": "nicht ausgeführt",
"evidence": "",
"risk_level": "niedrig",
"cookie_count": 0,
"domain_count": 0,
"request_count": 0,
"storage_total": 0,
"new_cookie_count": 0,
"third_party_cookie_count": 0,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 0
},
{
"id": "gpc",
"label": "GPC-Aufruf",
"status": "aktiv",
"evidence": "Navigator-GPC und Sec-GPC wurden im gesonderten Browserlauf gesetzt.",
"risk_level": "mittel",
"cookie_count": 3,
"domain_count": 10,
"request_count": 50,
"storage_total": 2,
"new_cookie_count": 0,
"third_party_cookie_count": 1,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 3
}
],
"color": "yellow",
"score": 80,
"status": "prüfen",
"summary": "Consent-State-Evidence: 4 Zustände verglichen, 0 hoch auffällig, 2 mittel auffällig.",
"findings": [
{
"id": "consent_state_gpc_evidence_review",
"title": "Consent-Zustand: GPC mit Tracking-Hinweisen",
"public": true,
"category": "privacy",
"severity": "info"
}
],
"available": true,
"high_count": 0,
"medium_count": 2
},
"contacted_domain_count": 10,
"fingerprinting_analysis": {
"color": "green",
"score": 96,
"checks": [
{
"id": "canvas",
"ok": true,
"count": 0,
"label": "Canvas-Auslese",
"detail": "0 Pixel-Lesezugriff(e), 0 Export(e)."
},
{
"id": "webgl",
"ok": false,
"count": 3,
"label": "WebGL-Merkmale",
"detail": "3 Parameterzugriff(e), 0 Pixel-Lesezugriff(e)."
},
{
"id": "audio",
"ok": true,
"count": 0,
"label": "AudioContext",
"detail": "0 AudioContext/OfflineAudioContext-Aufruf(e)."
},
{
"id": "session_replay",
"ok": true,
"count": 0,
"label": "Session-Replay-Anbieter",
"detail": "Keine bekannten Anbieter erkannt."
},
{
"id": "input_listeners",
"ok": true,
"count": 4,
"label": "Tastatur-/Eingabe-Listener",
"detail": "4 Tastatur-/Input-Listener, 6 Interaktions-Listener, 2 MutationObserver."
}
],
"status": "unauffällig",
"metrics": {
"webgl_read_count": 0,
"canvas_read_count": 0,
"audio_context_count": 0,
"canvas_export_count": 0,
"webgl_parameter_count": 3,
"mutation_observer_count": 2,
"keyboard_input_listener_count": 4,
"session_interaction_listener_count": 6
},
"summary": "1 Fingerprinting-/Session-Replay-Hinweis(e) aus dem Browserlauf.",
"findings": [
{
"id": "browser_webgl_fingerprinting",
"count": 3,
"title": "WebGL-Merkmale wurden ausgelesen",
"public": true,
"category": "privacy",
"severity": "info"
}
],
"finding_count": 1,
"session_replay_domains": []
},
"privacy_relevant_domains": [
{
"host": "connect.facebook.net",
"count": 2,
"category": "social_tracking",
"provider": "Meta/Facebook",
"third_party": true,
"category_label": "Social/Tracking",
"resource_types": {
"script": 2
}
},
{
"host": "googletagmanager.com",
"count": 1,
"category": "tag_manager",
"provider": "Google Tag Manager",
"third_party": true,
"category_label": "Tag-Manager",
"resource_types": {
"script": 1
}
},
{
"host": "region1.google-analytics.com",
"count": 1,
"category": "analytics",
"provider": "Google Analytics",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"fetch": 1
}
}
],
"provider_category_counts": {
"cdn": 1,
"fonts": 2,
"other": 3,
"analytics": 1,
"tag_manager": 1,
"social_tracking": 1
},
"provider_category_labels": {
"cdn": "CDN",
"fonts": "Schriften",
"other": "other",
"analytics": "Analytics",
"tag_manager": "Tag-Manager",
"social_tracking": "Social/Tracking"
},
"third_party_domain_count": 9,
"embedded_content_analysis": {
"color": "green",
"items": [
{
"host": "www.google.com",
"source": "html",
"element": "script",
"category": "captcha",
"provider": "Google reCAPTCHA",
"request_count": 0,
"category_label": "Captcha",
"loaded_pre_consent": false,
"recommended_action": "Captcha nur auf betroffenen Formularseiten laden und Anbieter, Zweck und Alternativen erklären."
}
],
"score": 100,
"status": "unauffällig",
"summary": "1 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen.",
"findings": [],
"map_count": 0,
"total_count": 1,
"video_count": 0,
"captcha_count": 1,
"category_counts": {
"Captcha": 1
},
"social_widget_count": 0,
"loaded_pre_consent_count": 0,
"request_count_by_provider": []
},
"referrer_leakage_analysis": {
"color": "red",
"items": [
{
"host": "region1.google-analytics.com",
"category": "analytics",
"provider": "Google Analytics",
"query_keys": [
"v",
"tid",
"gtm",
"_p",
"gcd",
"npa",
"dma_cps",
"dma"
],
"risk_reason": "sensibler Query-Schlüssel im Drittanbieter-Request oder Referrer",
"resource_type": "fetch",
"category_label": "Analytics",
"referrer_query_keys": [],
"sensitive_query_key_count": 1,
"referrer_sensitive_query_key_count": 0
},
{
"host": "region1.google-analytics.com",
"category": "analytics",
"provider": "Google Analytics",
"query_keys": [
"v",
"tid",
"gtm",
"_p",
"gcd",
"npa",
"dma_cps",
"dma"
],
"risk_reason": "Seiten-URL oder URL-Wert in Drittanbieter-Requestparametern",
"resource_type": "fetch",
"category_label": "Analytics",
"referrer_query_keys": [],
"url_value_param_count": 1,
"target_url_value_param_count": 1
},
{
"host": "gstatic.com",
"category": "cdn",
"provider": "Google Static",
"query_keys": [],
"risk_reason": "voller Referrer-Pfad oder Suchparameter an Drittanbieter",
"referrer_host": "gstatic.com",
"resource_type": "image",
"category_label": "CDN",
"referrer_has_path": true,
"referrer_has_query": false,
"referrer_query_keys": [],
"referrer_sensitive_query_key_count": 0
},
{
"host": "google.com",
"category": "other",
"provider": "google.com",
"query_keys": [
"k"
],
"risk_reason": "voller Referrer-Pfad oder Suchparameter an Drittanbieter",
"referrer_host": "google.com",
"resource_type": "xhr",
"category_label": "Sonstige",
"referrer_has_path": true,
"referrer_has_query": true,
"referrer_query_keys": [
"ar",
"k",
"co",
"hl",
"v",
"size",
"anchor-ms",
"execute-ms"
],
"referrer_sensitive_query_key_count": 0
}
],
"score": 39,
"status": "kritisch",
"summary": "3 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 1 sensible Query-Kontexte.",
"findings": [
{
"id": "third_party_full_referrer_leak",
"count": 2,
"title": "Drittanbieter können vollen Referrer-Kontext erhalten",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "third_party_page_url_parameter",
"count": 1,
"title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "third_party_sensitive_query_leak",
"count": 1,
"title": "Sensible URL-Schlüssel im Drittanbieter-Kontext",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"sample_count": 20,
"full_referrer_count": 2,
"page_url_param_count": 1,
"affected_domain_count": 3,
"sensitive_query_count": 1
},
"third_party_contact_matrix": {
"color": "red",
"items": [
{
"host": "connect.facebook.net",
"region": "US",
"status": "vor Einwilligung prüfen",
"category": "social_tracking",
"provider": "Meta/Facebook",
"risk_level": "hoch",
"request_count": 2,
"transfer_risk": "hoch",
"category_label": "Social/Tracking",
"resource_types": [
{
"type": "script",
"count": 2
}
],
"transfer_label": "Drittland/USA",
"privacy_relevant": true,
"recommended_action": "Vor Einwilligung blockieren oder klar begründen; Anbieter in Consent-Banner und Datenschutzerklärung nennen.",
"transfer_recommendation": "DPF/SCC/TIA, Meta-Dienste und gemeinsame Verantwortlichkeit prüfen."
},
{
"host": "region1.google-analytics.com",
"region": "US",
"status": "dokumentieren",
"category": "analytics",
"provider": "Google Analytics",
"risk_level": "mittel",
"request_count": 1,
"transfer_risk": "hoch",
"category_label": "Analytics",
"resource_types": [
{
"type": "fetch",
"count": 1
}
],
"transfer_label": "Drittland/USA",
"privacy_relevant": true,
"recommended_action": "Analytics erst nach Einwilligung oder datenschutzfreundlich ohne personenbezogene Profile betreiben.",
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "googletagmanager.com",
"region": "US",
"status": "dokumentieren",
"category": "tag_manager",
"provider": "Google Tag Manager",
"risk_level": "mittel",
"request_count": 1,
"transfer_risk": "hoch",
"category_label": "Tag-Manager",
"resource_types": [
{
"type": "script",
"count": 1
}
],
"transfer_label": "Drittland/USA",
"privacy_relevant": true,
"recommended_action": "Vor Einwilligung blockieren oder klar begründen; Anbieter in Consent-Banner und Datenschutzerklärung nennen.",
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "gstatic.com",
"region": "US",
"status": "prüfen",
"category": "cdn",
"provider": "Google Static",
"risk_level": "niedrig",
"request_count": 5,
"transfer_risk": "hoch",
"category_label": "CDN",
"resource_types": [
{
"type": "script",
"count": 2
},
{
"type": "image",
"count": 1
},
{
"type": "other",
"count": 1
},
{
"type": "stylesheet",
"count": 1
}
],
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"recommended_action": "CDN-/Asset-Abrufe auf Notwendigkeit, Region und Auftragsverarbeitung prüfen.",
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "google.com",
"region": "US",
"status": "prüfen",
"category": "other",
"provider": "google.com",
"risk_level": "niedrig",
"request_count": 5,
"transfer_risk": "hoch",
"category_label": "Sonstige",
"resource_types": [
{
"type": "script",
"count": 2
},
{
"type": "document",
"count": 1
},
{
"type": "fetch",
"count": 1
},
{
"type": "xhr",
"count": 1
}
],
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"recommended_action": "Zweck für Sonstige prüfen und bei Personenbezug dokumentieren.",
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "fonts.gstatic.com",
"region": "US",
"status": "dokumentieren",
"category": "fonts",
"provider": "Google Fonts",
"risk_level": "mittel",
"request_count": 3,
"transfer_risk": "hoch",
"category_label": "Schriften",
"resource_types": [
{
"type": "font",
"count": 3
}
],
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"recommended_action": "Schriften lokal hosten oder den externen Abruf in Datenschutz und Consent-Konzept erklären.",
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "fonts.googleapis.com",
"region": "US",
"status": "dokumentieren",
"category": "fonts",
"provider": "Google Fonts",
"risk_level": "mittel",
"request_count": 1,
"transfer_risk": "hoch",
"category_label": "Schriften",
"resource_types": [
{
"type": "stylesheet",
"count": 1
}
],
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"recommended_action": "Schriften lokal hosten oder den externen Abruf in Datenschutz und Consent-Konzept erklären.",
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "netdna.bootstrapcdn.com",
"region": "unbekannt",
"status": "prüfen",
"category": "other",
"provider": "netdna.bootstrapcdn.com",
"risk_level": "niedrig",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Sonstige",
"resource_types": [
{
"type": "stylesheet",
"count": 1
}
],
"transfer_label": "Jurisdiktion unklar",
"privacy_relevant": false,
"recommended_action": "Zweck für Sonstige prüfen und bei Personenbezug dokumentieren.",
"transfer_recommendation": "Anbieterland, AVV, TOMs und Transfergrundlage klären."
},
{
"host": "prophoto.s3.amazonaws.com",
"region": "unbekannt",
"status": "prüfen",
"category": "other",
"provider": "prophoto.s3.amazonaws.com",
"risk_level": "niedrig",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Sonstige",
"resource_types": [
{
"type": "image",
"count": 1
}
],
"transfer_label": "Jurisdiktion unklar",
"privacy_relevant": false,
"recommended_action": "Zweck für Sonstige prüfen und bei Personenbezug dokumentieren.",
"transfer_recommendation": "Anbieterland, AVV, TOMs und Transfergrundlage klären."
}
],
"score": 30,
"status": "kritisch",
"summary": "9 Drittanbieter-Domain(s) beim ersten Browseraufruf, davon 3 datenschutzrelevant.",
"category_counts": {
"CDN": 1,
"Sonstige": 3,
"Analytics": 1,
"Schriften": 2,
"Tag-Manager": 1,
"Social/Tracking": 1
},
"total_domain_count": 9,
"total_request_count": 20,
"privacy_relevant_count": 3,
"transfer_risk_analysis": {
"color": "red",
"items": [
{
"host": "connect.facebook.net",
"region": "US",
"provider": "Meta/Facebook",
"request_count": 2,
"transfer_risk": "hoch",
"category_label": "Social/Tracking",
"transfer_label": "Drittland/USA",
"privacy_relevant": true,
"transfer_recommendation": "DPF/SCC/TIA, Meta-Dienste und gemeinsame Verantwortlichkeit prüfen."
},
{
"host": "region1.google-analytics.com",
"region": "US",
"provider": "Google Analytics",
"request_count": 1,
"transfer_risk": "hoch",
"category_label": "Analytics",
"transfer_label": "Drittland/USA",
"privacy_relevant": true,
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "googletagmanager.com",
"region": "US",
"provider": "Google Tag Manager",
"request_count": 1,
"transfer_risk": "hoch",
"category_label": "Tag-Manager",
"transfer_label": "Drittland/USA",
"privacy_relevant": true,
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "gstatic.com",
"region": "US",
"provider": "Google Static",
"request_count": 5,
"transfer_risk": "hoch",
"category_label": "CDN",
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "google.com",
"region": "US",
"provider": "google.com",
"request_count": 5,
"transfer_risk": "hoch",
"category_label": "Sonstige",
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "fonts.gstatic.com",
"region": "US",
"provider": "Google Fonts",
"request_count": 3,
"transfer_risk": "hoch",
"category_label": "Schriften",
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "fonts.googleapis.com",
"region": "US",
"provider": "Google Fonts",
"request_count": 1,
"transfer_risk": "hoch",
"category_label": "Schriften",
"transfer_label": "Drittland/USA",
"privacy_relevant": false,
"transfer_recommendation": "DPF/SCC/TIA, Google-Vertrag und Consent prüfen."
},
{
"host": "netdna.bootstrapcdn.com",
"region": "unbekannt",
"provider": "netdna.bootstrapcdn.com",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Sonstige",
"transfer_label": "Jurisdiktion unklar",
"privacy_relevant": false,
"transfer_recommendation": "Anbieterland, AVV, TOMs und Transfergrundlage klären."
},
{
"host": "prophoto.s3.amazonaws.com",
"region": "unbekannt",
"provider": "prophoto.s3.amazonaws.com",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Sonstige",
"transfer_label": "Jurisdiktion unklar",
"privacy_relevant": false,
"transfer_recommendation": "Anbieterland, AVV, TOMs und Transfergrundlage klären."
}
],
"score": 39,
"status": "kritisch",
"summary": "9 Drittanbieter für Transfer-/Jurisdiktionsprüfung, 7 mit hohem Prüfbedarf, 2 unklar.",
"findings": [
{
"id": "third_country_transfer_review",
"title": "Drittland-/US-Anbieter im Browseraufruf prüfen",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "unknown_vendor_jurisdiction",
"title": "Anbieter-Jurisdiktion nicht klar ableitbar",
"public": true,
"category": "privacy",
"severity": "info"
}
],
"unknown_count": 2,
"high_risk_count": 7,
"total_vendor_count": 9,
"third_country_count": 7
}
},
"privacy_relevant_domain_count": 3,
"tracking_pixel_beacon_analysis": {
"color": "orange",
"items": [
{
"url": "",
"host": "catchthemoment.ch",
"kind": "beacon_api",
"reason": "sendBeacon API 0 Aufruf(e), 0 Code-Hinweis(e); keepalive 1 Aufruf(e), 0 Code-Hinweis(e).",
"source": "javascript_api",
"category": "telemetry",
"provider": "Beacon-/Keepalive-API",
"third_party": false,
"resource_type": "beacon",
"category_label": "Telemetry",
"recommended_action": "Beacon-/Keepalive-Telemetrie auf Zweck, Anbieter, Consent-Zustand und Datenschutzerklärung prüfen."
},
{
"url": "",
"host": "region1.google-analytics.com",
"kind": "browser_tracking_request",
"reason": "fetch-Request mit 38 Query-Schlüssel(n).",
"source": "chromium_request",
"category": "analytics",
"provider": "Google Analytics",
"query_keys": [
"v",
"tid",
"gtm",
"_p",
"gcd",
"npa",
"dma_cps",
"dma"
],
"third_party": true,
"resource_type": "fetch",
"category_label": "Analytics",
"recommended_action": "Drittanbieter-Pixel und Telemetrie-Requests vor Einwilligung blockieren oder datensparsam konfigurieren."
}
],
"score": 68,
"status": "auffällig",
"summary": "0 Pixel-/Bildtracking-Hinweis(e), 3 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s).",
"findings": [
{
"id": "beacon_api_usage",
"count": 3,
"title": "Beacon-/Keepalive-Telemetrie erkannt",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"pixel_count": 0,
"link_ping_count": 0,
"telemetry_count": 2,
"beacon_api_count": 0,
"third_party_count": 1,
"fetch_keepalive_count": 1,
"privacy_relevant_count": 1,
"beacon_code_reference_count": 0,
"fetch_keepalive_reference_count": 0
}
},
"privacy_analysis": {
"cookies": {
"items": [],
"total": 0,
"tracking": [],
"pre_consent": [],
"missing_secure": [],
"missing_samesite": [],
"pre_consent_tracking": [],
"pre_consent_nonessential": []
},
"findings": [
{
"id": "tracking_without_consent_hint",
"title": "Tracking ohne sichtbaren Cookie-Hinweis",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "privacy_policy_hint_missing",
"title": "Kein klarer Datenschutz-Hinweis erkannt",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"tracking_ids": [],
"tracking_scripts": [
{
"url": "https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"provider": "Google Tag Manager"
}
],
"consent_hint_found": false,
"privacy_policy_hint_found": false
},
"consent_audit": {
"color": "red",
"score": 0,
"checks": [
{
"id": "banner_visible",
"ok": false,
"label": "Cookie-/Consent-Hinweis sichtbar",
"detail": "Ein Hinweis mit Cookie-/Einwilligungsbezug wurde im sichtbaren Text erkannt."
},
{
"id": "reject_visible",
"ok": false,
"label": "Ablehnen gleichwertig erreichbar",
"detail": "Ablehnen oder nur notwendige Cookies wurde im Text oder Browser erkannt. Browser-Buttons: 0."
},
{
"id": "settings_visible",
"ok": false,
"label": "Einstellungen oder Auswahl vorhanden",
"detail": "Eine Einstellungs- oder Auswahlmoeglichkeit wurde im Text oder Browser erkannt. Browser-Buttons: 0."
},
{
"id": "browser_reject_visible",
"ok": true,
"label": "Ablehnen im sichtbaren Banner",
"detail": "Sichtbare Banner-Controls: Akzeptieren 0, Ablehnen 0, Einstellungen 0."
},
{
"id": "browser_settings_visible",
"ok": true,
"label": "Einstellungen im sichtbaren Banner",
"detail": "Sichtbare Banner-Controls: Akzeptieren 0, Ablehnen 0, Einstellungen 0."
},
{
"id": "reject_equally_prominent",
"ok": true,
"label": "Ablehnen nicht deutlich schwaecher dargestellt",
"detail": "Groessen-Verhältnis Ablehnen/Akzeptieren: nicht messbar."
},
{
"id": "reject_button_clickable",
"ok": true,
"label": "Ablehnen technisch klickbar",
"detail": "Wenn ein Ablehnen-Button sichtbar ist, klickt SaferPage ihn im Chromium-Browser einmal an."
},
{
"id": "no_new_cookies_after_reject",
"ok": true,
"label": "Keine neuen Cookies nach Ablehnen",
"detail": "0 neue Cookie(s) nach dem Ablehnen-Klick."
},
{
"id": "no_tracking_storage_after_reject",
"ok": true,
"label": "Kein Tracking-Storage nach Ablehnen",
"detail": "0 Tracking-Hinweis(e) im Web Storage nach Ablehnen."
},
{
"id": "no_privacy_domains_after_reject",
"ok": true,
"label": "Keine neuen Tracking-Kontakte nach Ablehnen",
"detail": "0 neue datenschutzrelevante Domain(s) nach Ablehnen."
},
{
"id": "gpc_signal_respected",
"ok": false,
"label": "GPC-Signal ohne Tracking-Hinweise",
"detail": "GPC-Aufruf: 3 datenschutzrelevante Domain(s), 1 Drittanbieter-Cookie(s), 0 Storage-Hinweis(e)."
},
{
"id": "no_tracking_cookies_before_consent",
"ok": false,
"label": "Keine Tracking-Cookies vor Einwilligung",
"detail": "2 Tracking-Cookie(s) im Erstaufruf."
},
{
"id": "no_nonessential_cookies_before_consent",
"ok": false,
"label": "Keine nicht notwendigen Cookies vor Einwilligung",
"detail": "3 moeglicherweise nicht notwendige Cookie(s) im Erstaufruf."
},
{
"id": "google_default_restrictive",
"ok": false,
"label": "Google Consent Default restriktiv",
"detail": "Google-Tags brauchen vor dem ersten Laden restriktive Consent-Defaults."
},
{
"id": "third_parties_explained",
"ok": true,
"label": "Drittanbieter begrenzt und erklaerbar",
"detail": "0 datenschutzrelevante Drittanbieter-Domain(s), 9 Drittanbieter insgesamt."
},
{
"id": "storage_without_tracking_hints",
"ok": true,
"label": "Web Storage ohne Tracking-Hinweise",
"detail": "2 Storage-Key(s), 0 Tracking-Hinweis(e)."
},
{
"id": "cmp_api_detected_when_needed",
"ok": false,
"label": "CMP-/TCF-Signal bei Tracking erkennbar",
"detail": "Gängige CMP-/TCF-Indikatoren: __tcfapi, __cmp, Cookiebot, OneTrust oder Usercentrics."
},
{
"id": "accept_click_documented",
"ok": true,
"label": "Akzeptieren-Klick nachvollziehbar",
"detail": "Accept-Test: nicht ausgefuehrt, neue Requests 0, neue Cookies 0, neue Datenschutz-Domains 0."
},
{
"id": "cmp_state_readable",
"ok": true,
"label": "CMP-/TCF-Zustand auslesbar",
"detail": "TCF TC-String: nein, Cookiebot: nein, OneTrust: nein, Usercentrics: nein."
},
{
"id": "cmp_default_restrictive",
"ok": true,
"label": "CMP-Default wirkt restriktiv",
"detail": "TCF Purposes erlaubt: 0, TCF Vendors erlaubt: 0, Cookiebot Statistik/Marketing: nein."
}
],
"status": "kritisch",
"summary": "Consent, Tracking oder Drittanbieter wirken im Erstaufruf deutlich nachbesserungsbeduerftig.",
"evidence": [
"3 Cookie(s) beim ersten Aufruf aus HTTP-Headern und Chromium",
"1 Tracking-Script(s) im HTML",
"0 datenschutzrelevante Drittanbieter-Domain(s)",
"2 Storage-Key(s), 0 Tracking-Hinweis(e)",
"Consent-Banner-Controls: Akzeptieren 0, Ablehnen 0, Einstellungen 0",
"Ablehnen/Akzeptieren-Prominenz: nicht messbar",
"Reject-Test: nicht ausgefuehrt, neue Cookies 0, Tracking-Storage 0, neue Datenschutz-Domains 0",
"Accept-Test: nicht ausgefuehrt, neue Requests 0, neue Cookies 0, neue Datenschutz-Domains 0, Drittanbieter-Cookies 0",
"CMP-State: TCF-String nein, TCF Purposes 0, TCF Vendors 0, Cookiebot nein, OneTrust-Gruppen 0, Usercentrics-Services 0",
"GPC-Test: aktiv, Datenschutz-Domains 3, Drittanbieter-Cookies 1, Storage-Hinweise 0",
"CMP-/TCF-Signal: nein",
"Google Consent Default: nein"
],
"gpc_enabled": true,
"cmp_detected": false,
"blocking_plan": {
"items": [
{
"kind": "cookie",
"level": "hoch",
"source": "Google",
"target": "_ga",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "analytics",
"evidence": "vor Consent gesetzt · catchthemoment.ch · lang (399 Tage)",
"owner_team": "GTM/CMP",
"category_label": "Analytics",
"recommended_action": "In CMP/Cookie-Kategorie einordnen und vor Einwilligung blockieren, falls nicht technisch erforderlich."
},
{
"kind": "cookie",
"level": "hoch",
"source": "Google",
"target": "_ga_LLJ6DNTE7Q",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "analytics",
"evidence": "vor Consent gesetzt · catchthemoment.ch · lang (399 Tage)",
"owner_team": "GTM/CMP",
"category_label": "Analytics",
"recommended_action": "In CMP/Cookie-Kategorie einordnen und vor Einwilligung blockieren, falls nicht technisch erforderlich."
},
{
"kind": "google_consent",
"level": "hoch",
"source": "Google",
"target": "Google Consent Defaults",
"recipes": [
{
"tool": "Google Consent Mode v2",
"owner": "GTM Manager"
},
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
}
],
"category": "tag_manager",
"evidence": "Google-Tags erkannt, aber kein Consent-Default vor dem ersten Tag.",
"owner_team": "GTM/CMP",
"category_label": "Tag-Manager",
"recommended_action": "Vor dem ersten Google-Tag Consent Mode Default setzen: ad_storage, analytics_storage, ad_user_data und ad_personalization auf denied."
},
{
"kind": "script",
"level": "hoch",
"source": "googletagmanager.com",
"target": "https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "tag_manager",
"evidence": "Google Tag Manager · Tag-Manager",
"owner_team": "GTM/CMP",
"category_label": "Tag-Manager",
"recommended_action": "Script bis Consent neutralisieren, z. B. per CMP-Autoblocking, type='text/plain' oder data-cookieblock-src/data-*-src."
},
{
"kind": "third_party_request",
"level": "hoch",
"source": "Meta/Facebook",
"target": "connect.facebook.net",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "social_tracking",
"evidence": "2 Request(s) im Erstaufruf · Social/Tracking",
"owner_team": "GTM/CMP",
"category_label": "Social/Pixel",
"recommended_action": "Tag, Pixel oder Einbindung an Consent-Zustand koppeln; vor Ablehnen/GPC keine Trackingkontakte auslösen."
},
{
"kind": "third_party_request",
"level": "hoch",
"source": "Google Tag Manager",
"target": "googletagmanager.com",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "tag_manager",
"evidence": "1 Request(s) im Erstaufruf · Tag-Manager",
"owner_team": "GTM/CMP",
"category_label": "Tag-Manager",
"recommended_action": "Tag, Pixel oder Einbindung an Consent-Zustand koppeln; vor Ablehnen/GPC keine Trackingkontakte auslösen."
},
{
"kind": "third_party_request",
"level": "hoch",
"source": "Google Analytics",
"target": "region1.google-analytics.com",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "analytics",
"evidence": "1 Request(s) im Erstaufruf · Analytics",
"owner_team": "GTM/CMP",
"category_label": "Analytics",
"recommended_action": "Tag, Pixel oder Einbindung an Consent-Zustand koppeln; vor Ablehnen/GPC keine Trackingkontakte auslösen."
},
{
"kind": "cookie",
"level": "mittel",
"source": "Google",
"target": "_GRECAPTCHA",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Cookiebot",
"owner": "CMP/Developer"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "OneTrust",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "unknown",
"evidence": "vor Consent gesetzt · google.com · mittel (179 Tage)",
"owner_team": "CMP/Developer",
"category_label": "Unklar",
"recommended_action": "In CMP/Cookie-Kategorie einordnen und vor Einwilligung blockieren, falls nicht technisch erforderlich."
},
{
"kind": "storage",
"level": "mittel",
"source": "localStorage",
"target": "_grecaptcha",
"recipes": [
{
"tool": "Google Tag Manager",
"owner": "GTM Manager"
},
{
"tool": "Usercentrics",
"owner": "CMP/Developer"
},
{
"tool": "Developer-Fallback",
"owner": "Developer"
}
],
"category": "unknown",
"evidence": "localStorage · Unklar · dauerhaft bis Löschung durch Nutzer/Browser",
"owner_team": "CMP/Developer",
"category_label": "Unklar",
"recommended_action": "Zweck und Speicherdauer klären; bis zur Klärung nicht für Tracking oder Profilbildung nutzen."
}
],
"summary": "9 Blockier-/Consent-Maßnahme(n) abgeleitet: 7 hoch, 2 mittel.",
"available": true,
"high_count": 7,
"total_count": 9,
"type_counts": {
"cookie": 3,
"script": 1,
"storage": 1,
"google_consent": 1,
"third_party_request": 3
},
"medium_count": 2
},
"tcf_api_found": false,
"cookiebot_found": false,
"accept_test_enabled": false,
"browser_cookie_count": 3,
"accept_button_clicked": false,
"browser_storage_count": 2,
"reject_button_clicked": false,
"reject_less_prominent": false,
"tcf_tc_string_present": false,
"tracking_script_count": 1,
"accept_button_available": false,
"reject_button_available": false,
"reject_prominence_ratio": 0,
"pre_consent_cookie_count": 3,
"pre_consent_cookie_names": [
"_ga",
"_ga_LLJ6DNTE7Q",
"_GRECAPTCHA"
],
"tcf_vendor_consent_count": 0,
"third_party_domain_count": 9,
"tcf_purpose_consent_count": 0,
"onetrust_active_group_count": 0,
"usercentrics_services_count": 0,
"browser_accept_control_count": 0,
"browser_cookie_context_found": false,
"browser_reject_control_count": 0,
"gpc_third_party_cookie_count": 1,
"post_accept_new_cookie_count": 0,
"post_reject_new_cookie_count": 0,
"post_accept_new_request_count": 0,
"browser_settings_control_count": 0,
"gpc_storage_tracking_hint_count": 0,
"cookiebot_marketing_or_statistics": false,
"gpc_privacy_relevant_domain_count": 3,
"pre_consent_tracking_cookie_count": 2,
"pre_consent_tracking_cookie_names": [
"_ga",
"_ga_LLJ6DNTE7Q"
],
"privacy_relevant_third_party_count": 0,
"browser_storage_tracking_hint_count": 0,
"post_accept_third_party_cookie_count": 0,
"pre_consent_nonessential_cookie_count": 3,
"pre_consent_nonessential_cookie_names": [
"_ga",
"_ga_LLJ6DNTE7Q",
"_GRECAPTCHA"
],
"post_accept_storage_tracking_hint_count": 0,
"post_reject_storage_tracking_hint_count": 0,
"post_accept_privacy_relevant_domain_count": 0,
"post_reject_privacy_relevant_domain_count": 0
},
"cookie_inventory": {
"color": "red",
"items": [
{
"name": "_ga",
"domain": "catchthemoment.ch",
"secure": false,
"sources": [
"browser_first_load"
],
"category": "analytics",
"provider": "Google",
"tracking": true,
"http_only": false,
"same_site": "Lax",
"expires_at": "2027-07-18T02:20:43+00:00",
"long_lived": true,
"persistent": true,
"first_party": true,
"origin_host": "catchthemoment.ch",
"pre_consent": true,
"source_label": "Chromium-Erstaufruf",
"category_label": "Analytics",
"retention_risk": "hoch",
"expires_in_days": 399,
"origin_evidence": "30 Browser-Request(s) · document:1, font:1, image:17, script:7",
"origin_provider": "catchthemoment.ch",
"retention_class": "long",
"retention_label": "lang (399 Tage)",
"likely_essential": false,
"origin_script_url": "https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"origin_resource_type": "",
"recommended_retention_action": "Tracking-/Marketing-Cookie-Laufzeit verkürzen und erst nach Einwilligung setzen."
},
{
"name": "_ga_LLJ6DNTE7Q",
"domain": "catchthemoment.ch",
"secure": false,
"sources": [
"browser_first_load"
],
"category": "analytics",
"provider": "Google",
"tracking": true,
"http_only": false,
"same_site": "Lax",
"expires_at": "2027-07-18T02:20:43+00:00",
"long_lived": true,
"persistent": true,
"first_party": true,
"origin_host": "catchthemoment.ch",
"pre_consent": true,
"source_label": "Chromium-Erstaufruf",
"category_label": "Analytics",
"retention_risk": "hoch",
"expires_in_days": 399,
"origin_evidence": "30 Browser-Request(s) · document:1, font:1, image:17, script:7",
"origin_provider": "catchthemoment.ch",
"retention_class": "long",
"retention_label": "lang (399 Tage)",
"likely_essential": false,
"origin_script_url": "https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"origin_resource_type": "",
"recommended_retention_action": "Tracking-/Marketing-Cookie-Laufzeit verkürzen und erst nach Einwilligung setzen."
},
{
"name": "_GRECAPTCHA",
"domain": "google.com",
"secure": true,
"sources": [
"browser_first_load"
],
"category": "unknown",
"provider": "Google",
"tracking": false,
"http_only": true,
"same_site": "None",
"expires_at": "2026-12-10T02:20:44+00:00",
"long_lived": false,
"persistent": true,
"first_party": false,
"origin_host": "google.com",
"pre_consent": true,
"source_label": "Chromium-Erstaufruf",
"category_label": "Unklar",
"retention_risk": "niedrig",
"expires_in_days": 179,
"origin_evidence": "5 Browser-Request(s) · document:1, fetch:1, script:2, xhr:1",
"origin_provider": "google.com",
"retention_class": "medium",
"retention_label": "mittel (179 Tage)",
"likely_essential": false,
"origin_script_url": "https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"origin_resource_type": "script",
"recommended_retention_action": "Speicherdauer und Zweck in Datenschutzerklärung/Cookie-Liste dokumentieren."
}
],
"score": 42,
"total": 3,
"status": "kritisch",
"summary": "3 Cookie(s) inventarisiert: 2 Tracking-/Werbe-Cookie(s), 1 Drittanbieter-Cookie(s), 2 langlebige Cookie(s), 0 sehr lange Laufzeit(en).",
"findings": [
{
"id": "long_lived_tracking_cookie",
"count": 2,
"title": "Langlebige Tracking-/Marketing-Cookies",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"categories": {
"unknown": 1,
"analytics": 2
},
"tracking_count": 2,
"category_labels": {
"consent": "Consent",
"payment": "Zahlung",
"unknown": "Unklar",
"security": "Sicherheit",
"analytics": "Analytics",
"necessary": "Notwendig",
"functional": "Funktional",
"advertising": "Werbung"
},
"long_lived_count": 2,
"persistent_count": 3,
"first_party_count": 2,
"pre_consent_count": 3,
"retention_classes": {
"long": 2,
"medium": 1
},
"third_party_count": 1,
"missing_secure_count": 2,
"retention_risk_count": 2,
"retention_risk_items": [
{
"name": "_ga",
"domain": "catchthemoment.ch",
"secure": false,
"sources": [
"browser_first_load"
],
"category": "analytics",
"provider": "Google",
"tracking": true,
"http_only": false,
"same_site": "Lax",
"expires_at": "2027-07-18T02:20:43+00:00",
"long_lived": true,
"persistent": true,
"first_party": true,
"origin_host": "catchthemoment.ch",
"pre_consent": true,
"source_label": "Chromium-Erstaufruf",
"category_label": "Analytics",
"retention_risk": "hoch",
"expires_in_days": 399,
"origin_evidence": "30 Browser-Request(s) · document:1, font:1, image:17, script:7",
"origin_provider": "catchthemoment.ch",
"retention_class": "long",
"retention_label": "lang (399 Tage)",
"likely_essential": false,
"origin_script_url": "https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"origin_resource_type": "",
"recommended_retention_action": "Tracking-/Marketing-Cookie-Laufzeit verkürzen und erst nach Einwilligung setzen."
},
{
"name": "_ga_LLJ6DNTE7Q",
"domain": "catchthemoment.ch",
"secure": false,
"sources": [
"browser_first_load"
],
"category": "analytics",
"provider": "Google",
"tracking": true,
"http_only": false,
"same_site": "Lax",
"expires_at": "2027-07-18T02:20:43+00:00",
"long_lived": true,
"persistent": true,
"first_party": true,
"origin_host": "catchthemoment.ch",
"pre_consent": true,
"source_label": "Chromium-Erstaufruf",
"category_label": "Analytics",
"retention_risk": "hoch",
"expires_in_days": 399,
"origin_evidence": "30 Browser-Request(s) · document:1, font:1, image:17, script:7",
"origin_provider": "catchthemoment.ch",
"retention_class": "long",
"retention_label": "lang (399 Tage)",
"likely_essential": false,
"origin_script_url": "https://www.googletagmanager.com/gtag/js?id=GT-NBBRNVN",
"origin_resource_type": "",
"recommended_retention_action": "Tracking-/Marketing-Cookie-Laufzeit verkürzen und erst nach Einwilligung setzen."
}
],
"very_long_lived_count": 0,
"missing_samesite_count": 0,
"persistent_unknown_count": 0,
"long_lived_tracking_count": 2
},
"security_header_analysis": {
"color": "red",
"score": 34,
"checks": [
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "HSTS",
"value": "",
"header": "strict-transport-security",
"present": false,
"purpose": "Erzwingt HTTPS nach dem ersten sicheren Aufruf.",
"severity": "warning",
"recommended": "max-age=31536000; includeSubDomains"
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "Content-Security-Policy",
"value": "",
"header": "content-security-policy",
"present": false,
"purpose": "Begrenzt Skript-, Frame- und Ressourcenquellen im Browser.",
"severity": "warning",
"recommended": "Schrittweise CSP mit default-src 'self' und expliziten Drittanbietern einführen."
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "X-Frame-Options",
"value": "",
"header": "x-frame-options",
"present": false,
"purpose": "Reduziert Clickjacking-Risiken bei älteren Browsern.",
"severity": "warning",
"recommended": "DENY oder SAMEORIGIN"
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "X-Content-Type-Options",
"value": "",
"header": "x-content-type-options",
"present": false,
"purpose": "Verhindert MIME-Sniffing bei Skripten und Stylesheets.",
"severity": "warning",
"recommended": "nosniff"
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "Referrer-Policy",
"value": "",
"header": "referrer-policy",
"present": false,
"purpose": "Begrenzt, welche URL-Informationen an Zielseiten weitergegeben werden.",
"severity": "info",
"recommended": "strict-origin-when-cross-origin"
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "Permissions-Policy",
"value": "",
"header": "permissions-policy",
"present": false,
"purpose": "Begrenzt sensible Browser-Funktionen pro Seite.",
"severity": "info",
"recommended": "Nicht benötigte Browser-APIs wie Kamera, Mikrofon und Geolocation sperren."
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "Cross-Origin-Opener-Policy",
"value": "",
"header": "cross-origin-opener-policy",
"present": false,
"purpose": "Isoliert Top-Level-Fenster und reduziert Cross-Origin-Seiteneffekte.",
"severity": "info",
"recommended": "same-origin oder same-origin-allow-popups nach Funktionsprüfung"
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "Cross-Origin-Resource-Policy",
"value": "",
"header": "cross-origin-resource-policy",
"present": false,
"purpose": "Begrenzt, welche fremden Seiten Ressourcen einbetten dürfen.",
"severity": "info",
"recommended": "same-origin oder same-site nach Ressourcenprüfung"
},
{
"ok": false,
"note": "Fehlt in der HTTP-Antwort.",
"label": "Cross-Origin-Embedder-Policy",
"value": "",
"header": "cross-origin-embedder-policy",
"present": false,
"purpose": "Erzwingt kontrollierte Cross-Origin-Einbettungen und kann Cross-Origin Isolation ermöglichen.",
"severity": "info",
"recommended": "require-corp nur nach Prüfung aller eingebetteten Drittressourcen"
}
],
"status": "kritisch",
"missing": [
"HSTS",
"Content-Security-Policy",
"X-Frame-Options",
"X-Content-Type-Options",
"Referrer-Policy",
"Permissions-Policy",
"Cross-Origin-Opener-Policy",
"Cross-Origin-Resource-Policy",
"Cross-Origin-Embedder-Policy"
],
"summary": "0 von 9 wichtigen Security-Headern vorhanden, 0 korrekt bewertet. Keine Content-Security-Policy gefunden.",
"findings": [],
"ok_count": 0,
"weak_count": 0,
"csp_analysis": {
"color": "red",
"score": 0,
"status": "fehlt",
"summary": "Keine Content-Security-Policy gefunden.",
"enforced": false,
"findings": [],
"available": false,
"directives": [],
"report_only": false,
"finding_count": 0,
"warning_count": 0
},
"missing_count": 9,
"present_count": 0,
"missing_info_count": 5,
"missing_warning_count": 4
},
"infrastructure_analysis": {
"signals": {
"caa": true,
"dnssec": false,
"final_https": true,
"tls_version": "TLSv1.3",
"hsts_enabled": false,
"address_count": 2,
"ipv6_available": true,
"email_protection": {
"mx": true,
"spf": true,
"dmarc": true
},
"certificate_valid": true,
"certificate_issuer": "E8",
"certificate_alt_names": [
"catchthemoment.ch",
"www.catchthemoment.ch"
],
"multiple_ip_addresses": true,
"certificate_expires_at": "Jul 31 02:11:55 2026 GMT",
"certificate_days_remaining": 47,
"certificate_hostname_matches": true
},
"findings": [],
"risk_level": "low",
"positive_signals": [
"Mehrere IP-Adressen gefunden: Hinweis auf redundante Infrastruktur oder CDN.",
"IPv6 ist vorhanden.",
"Moderne TLS-Version aktiv: TLSv1.3.",
"DMARC ist für die Domain vorhanden.",
"CAA-Records begrenzen Zertifikatsaussteller."
]
},
"performance_analysis": {
"score": 88,
"signals": {
"compressed": false,
"duration_ms": 525,
"image_count": 13,
"script_count": 9,
"cache_control": "",
"content_length": 0,
"viewport_found": false,
"stylesheet_count": 6
},
"findings": [
{
"id": "viewport_missing",
"title": "Viewport-Meta-Tag fehlt",
"public": true,
"category": "performance",
"severity": "info"
},
{
"id": "too_many_render_blocking_assets",
"title": "Viele potenziell blockierende Assets",
"public": true,
"category": "performance",
"severity": "info"
}
],
"risk_level": "medium"
},
"accessibility_analysis": {
"color": "orange",
"score": 68,
"status": "auffällig",
"signals": {
"h1_count": 1,
"image_count": 13,
"button_count": 0,
"heading_count": 10,
"viewport_found": false,
"html_lang_found": true,
"form_field_count": 0,
"image_missing_alt_count": 10,
"buttons_without_name_count": 0,
"form_fields_without_label_count": 0
},
"summary": "13 Bild(er), 0 Formularfeld(er), 0 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.",
"findings": [
{
"id": "image_alt_missing",
"count": 10,
"title": "Bilder ohne Alternativtext",
"public": true,
"category": "accessibility",
"severity": "info"
}
],
"wcag_matrix": {
"rows": [
{
"id": "wcag_non_text_content",
"ok": false,
"wcag": "WCAG 1.1.1 Non-text Content",
"title": "Alternativtexte für Bilder",
"impact": "mittel",
"status": "prüfen",
"evidence": "10 von 13 Bild(er) ohne alt-Text im HTML-Sample."
},
{
"id": "wcag_form_labels",
"ok": true,
"wcag": "WCAG 1.3.1 Info and Relationships / 3.3.2 Labels or Instructions",
"title": "Formularfelder beschriften",
"impact": "niedrig",
"status": "ok",
"evidence": "0 von 0 Formularfeld(er) ohne erkennbare Beschriftung."
},
{
"id": "wcag_button_names",
"ok": true,
"wcag": "WCAG 4.1.2 Name, Role, Value",
"title": "Buttons mit Namen versehen",
"impact": "niedrig",
"status": "ok",
"evidence": "0 von 0 Button(s) ohne erkennbaren Namen."
},
{
"id": "wcag_page_language",
"ok": true,
"wcag": "WCAG 3.1.1 Language of Page",
"title": "Seitensprache auszeichnen",
"impact": "niedrig",
"status": "ok",
"evidence": "HTML-lang-Attribut gefunden."
},
{
"id": "wcag_heading_structure",
"ok": true,
"wcag": "WCAG 1.3.1 Info and Relationships / 2.4.6 Headings and Labels",
"title": "Überschriftenstruktur",
"impact": "niedrig",
"status": "ok",
"evidence": "1 H1 und 10 Überschrift(en) im HTML-Sample."
},
{
"id": "wcag_mobile_reflow",
"ok": false,
"wcag": "WCAG 1.4.10 Reflow",
"title": "Mobile Viewport-Basis",
"impact": "mittel",
"status": "prüfen",
"evidence": "Kein Viewport-Meta-Tag im HTML-Sample erkannt."
}
],
"summary": "2 WCAG-/EAA-Prüfpunkt(e) auffällig, davon 0 mit hoher Auswirkung.",
"standard": "WCAG 2.2 orientierte Basisprüfung",
"available": true,
"issue_count": 2,
"high_impact_count": 0
}
},
"domain_history": {
"summary": "Domainhistorie konnte per RDAP nicht zuverlässig abgerufen werden.",
"findings": [],
"available": false,
"risk_level": "unknown"
},
"data_entry_analysis": {
"forms": [
{
"url": "https://www.catchthemoment.ch/kontakt",
"path": "/kontakt",
"method": "UNBEKANNT",
"source": "crawl",
"purpose": "Formular",
"data_types": [],
"field_count": 0,
"action_external": false
},
{
"purpose": "Formular",
"field_count": 0,
"source": "crawl",
"path": "/kontakt",
"url": "https://www.catchthemoment.ch/kontakt"
}
],
"score": 75,
"summary": "Crawl fand 1 Formular(e) auf 1 geprüften Seite(n), u. a. /kontakt. Zweck, Pflichtfelder und Datenschutzkontext je Formular prüfen.",
"findings": [
{
"id": "data_entry_privacy_context_missing",
"title": "Dateneingabe ohne klaren Datenschutzkontext",
"public": true,
"category": "data_entry",
"severity": "warning"
}
],
"form_count": 1,
"risk_level": "medium",
"field_count": 0,
"asks_for_data": true,
"crawl_form_pages": [
{
"url": "https://www.catchthemoment.ch/kontakt",
"path": "/kontakt",
"category": "kontakt",
"form_count": 1
}
],
"payment_providers": [],
"detected_data_types": [
{
"id": "contact",
"count": 1,
"label": "Kontaktformular"
}
],
"crawl_form_page_count": 1,
"privacy_context_found": false,
"operator_context_found": false
},
"pii_exposure_analysis": {
"color": "yellow",
"score": 82,
"checks": [
{
"id": "current_url",
"ok": true,
"count": 0,
"label": "Aktuelle URL",
"detail": "Keine sensiblen Query-Parameter erkannt."
},
{
"id": "link_queries",
"ok": true,
"count": 0,
"label": "Link-Parameter",
"detail": "Keine sensiblen Link-Querys erkannt."
},
{
"id": "get_forms",
"ok": true,
"count": 0,
"label": "GET-Formulare",
"detail": "Keine personenbezogenen GET-Formulare erkannt."
},
{
"id": "external_forms",
"ok": true,
"count": 0,
"label": "Externe Formularziele",
"detail": "Keine externen Formularziele mit personenbezogenen Feldern erkannt."
},
{
"id": "tracking_context",
"ok": false,
"count": 3,
"label": "Tracking neben Dateneingabe",
"detail": "3 datenschutzrelevante Drittanbieter."
}
],
"status": "prüfen",
"summary": "1 PII-/Datenleck-Hinweis(e) aus URL-, Formular- und Browserkontext.",
"findings": [
{
"id": "pii_tracking_on_data_entry_page",
"title": "Dateneingabe und datenschutzrelevante Drittanbieter im selben Browseraufruf",
"public": true,
"category": "privacy",
"severity": "warning",
"third_party_count": 3
}
],
"link_hits": [],
"finding_count": 1,
"current_url_hits": [],
"tracking_context": true,
"sensitive_get_forms": [],
"external_form_actions": []
},
"scan_history_analysis": {
"available": false,
"summary": "Noch kein früherer gespeicherter Scan für diese Domain vorhanden.",
"history": [
{
"scan_id": "096fd56e-03f7-4e75-801a-73572708b595",
"created_at": "2026-06-13 04:21:06.558789+02",
"score": 0,
"verdict": "riskant",
"finding_count": 47,
"integrity_root_hash": "4aaa4c78048e07f753b1575350c13b4e9076091f17384ae77bf5671597fda338",
"integrity_available_hash_count": 9,
"current": true
}
],
"new_findings": [],
"resolved_findings": [],
"technical_changes": {
"available": false,
"summary": "Noch kein früherer Scan für technische Änderungen vorhanden."
}
},
"benchmark_analysis": {
"host": "catchthemoment.ch",
"rank": 1,
"score": 0,
"status": "im_mittelfeld",
"summary": "catchthemoment.ch liegt mit 0 Punkten ungefähr im gespeicherten Vergleichsfeld. Weil viele gespeicherte Checks bei 0 Punkten liegen, zeigt die Detailansicht zusätzlich aktive Peers mit Durchschnitt 17.3.",
"available": true,
"peer_count": 1266,
"percentile": 0,
"query_mode": "php_ttl_cache_refresh",
"distribution": {
"0_39": 1262,
"40_59": 3,
"60_79": 1,
"80_100": 0
},
"median_score": 0,
"average_score": 1.1,
"comparison_basis": "Neuester gespeicherter SaferPage-Scan je Domain; überwiegend deutschsprachige gespeicherte Checks.",
"same_score_count": 0,
"better_than_count": 0,
"qualified_peer_count": 77,
"zero_score_count": 1189,
"top_quartile_score": 0,
"top_decile_score": 0,
"qualified_average_score": 17.3,
"qualified_median_score": 16,
"qualified_top_quartile_score": 24,
"qualified_top_decile_score": 36,
"thresholds": [
{
"id": "critical",
"label": "Kritisch",
"range": "0-39",
"met": true
},
{
"id": "basic",
"label": "Basis stabilisieren",
"range": "40-59",
"met": false
},
{
"id": "managed",
"label": "Gesteuert",
"range": "60-79",
"met": false
},
{
"id": "strong",
"label": "Stark",
"range": "80-100",
"met": false
}
],
"risk_tier": "kritisch",
"target_score": 40,
"aspirational_target_score": 60,
"gap_to_target": 40,
"gap_to_top_quartile": 24,
"gap_to_strong": 80,
"cache_ttl_seconds": 300
},
"audit_receipt": {
"url": "https://catchthemoment.ch/",
"host": "catchthemoment.ch",
"status": "verfügbar",
"bot_url": "https://saferpage.de/bot",
"summary": "Prüfbeleg für catchthemoment.ch: kontrollierter HTTP-/Browser-Kurzcheck mit 50 Request(s), 4 Consent-Zustand/Zuständen und 7 Artefakt(en).",
"renderer": "playwright-chromium",
"artifacts": [
{
"label": "Öffentlicher Kurzreport",
"detail": "https://saferpage.de/catchthemoment.ch",
"status": "verfügbar"
},
{
"label": "JSON-Export",
"detail": "Maschinenlesbarer Report mit Modulen, Nachweisen und Tabellen.",
"status": "verfügbar"
},
{
"label": "CSV-Export",
"detail": "Tabellarische Prüfzeilen für Betreiber, Datenschutz und Technik.",
"status": "verfügbar"
},
{
"label": "160x150 Seitenvorschau",
"detail": "/cache/screenshots/catchthemoment.ch-160x150-f81a049ccaaf23d0f8.png",
"status": "verfügbar"
},
{
"label": "Cookie-Erklärung",
"detail": "5 Cookie-/Storage-Eintrag/Einträge.",
"status": "auffällig"
},
{
"label": "Empfänger-/Anbieterinventar",
"detail": "9 Anbieterzeile(n), 6 AVV-/Rollenprüfung(en).",
"status": "kritisch"
},
{
"label": "Barrierefreiheitserklärung-Entwurf",
"detail": "2 bekannte Barrierefreiheits-Punkt(e).",
"status": "Teilweise konform im automatischen Basischeck"
}
],
"available": true,
"final_url": "https://www.catchthemoment.ch/",
"checked_at": "2026-06-13T02:21:06+00:00",
"share_text": "SaferPage Prüfbeleg catchthemoment.ch: 50 Browser-Request(s), 9 Drittanbieter, 5 Cookie-/Storage-Einträge, geprüft am 2026-06-13T02:21:06.",
"user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)",
"limitations": [
"Öffentliche Nachweise enthalten keine Cookie-Werte und keine vollständigen Request-URLs.",
"Der Scan ist ein passiver Browser- und HTTP-Kurzcheck; rechtliche Bewertung bleibt Betreiberaufgabe.",
"Dynamische Inhalte können sich je nach Region, Zeit, Gerät und Consent-Auswahl ändern."
],
"scan_context": "manual",
"coverage_items": [
{
"label": "HTTP/DNS/TLS",
"value": "HTTP 200 · DNS ok · TLS ok"
},
{
"label": "Browserlauf",
"value": "50 Request(s), 9 Drittanbieter-Domain(s), 3 Browser-Cookie(s)."
},
{
"label": "Consent-Zustände",
"value": "4 Zustand/Zustände: Default, Ablehnen, Akzeptieren und GPC soweit verfügbar."
},
{
"label": "Seitenabdeckung",
"value": "8 priorisierte Unterseite(n) im Nachweispack."
},
{
"label": "Drittanbieter-Auszug",
"value": "9 Anbieterzeile(n) im öffentlichen Nachweis."
},
{
"label": "Cookie-Auszug",
"value": "3 Cookie-Zeile(n) im öffentlichen Nachweis."
}
],
"confidence_score": 63,
"browser_final_url": "https://www.catchthemoment.ch/",
"methodology_steps": [
"URL normalisieren, DNS/TLS/HTTP abrufen und Weiterleitungsziel dokumentieren.",
"Startseite mit SaferPage-User-Agent und Headless Chromium aufrufen.",
"Netzwerk-Requests, Cookies, Web Storage, Screenshot und sichtbare Consent-Controls erfassen.",
"Consent-Zustände Default, Ablehnen, Akzeptieren und GPC soweit möglich gegenüberstellen.",
"Cookies, Anbieter, Rechtsgrundlagen, Banner-UX, Security-Header, Barrierefreiheit und Betreiberaufgaben ableiten."
]
},
"evidence_integrity_manifest": {
"host": "catchthemoment.ch",
"status": "verfügbar",
"summary": "Integritätsmanifest für catchthemoment.ch: 9/9 Nachweisbereich(e) mit SHA-256-Hash dokumentiert.",
"sections": [
{
"id": "audit_receipt",
"hash": "6dbc3b3d0d97bf3bc6a12737f5759cd8a874035b21cd93ddc8d223a6152bf270",
"count": 18,
"label": "Prüfbeleg",
"detail": "Kanonischer JSON-Hash des kompakten Prüfbelegs.",
"status": "verfügbar"
},
{
"id": "protocol",
"hash": "ccec02dd637e4fc69ef9211bfe2ef0c935d99520e23705d2500288653a358db1",
"count": 15,
"label": "Scan-Protokoll",
"detail": "URL, Endziel, User-Agent, Zeitstempel, HTTP/DNS/TLS und Renderer.",
"status": "verfügbar"
},
{
"id": "checkpoints",
"hash": "2c29123b50ed47e1f643e18971abcea20a83c92d08f211a1df646923ccffedc9",
"count": 6,
"label": "Prüfschritte",
"detail": "Kanonischer JSON-Hash der dokumentierten Prüfstationen.",
"status": "verfügbar"
},
{
"id": "consent_states",
"hash": "506a50f23270f51d391ce563225c4e6374691fc1dc9d725b45ad63bdacae0bca",
"count": 4,
"label": "Consent-Zustände",
"detail": "Default-, Ablehnen-, Akzeptieren- und GPC-Nachweise soweit verfügbar.",
"status": "verfügbar"
},
{
"id": "third_party_evidence",
"hash": "09265e68c1b19b6d9636acf637391e256be6f729e5bb7c6135a1f056b6c7328f",
"count": 9,
"label": "Drittanbieter-Auszug",
"detail": "Sanitisierte Anbieter-, Kategorie-, Transfer- und Request-Zählwerte.",
"status": "verfügbar"
},
{
"id": "cookie_evidence",
"hash": "34df1abb193a7bc7f847d44e88c067a6c37a5a1769c46b45117a2e529171adc2",
"count": 3,
"label": "Cookie-Auszug",
"detail": "Sanitisierte Cookie-Metadaten ohne Cookie-Werte.",
"status": "verfügbar"
},
{
"id": "request_samples",
"hash": "3f6716a4ab8a669394e1dff8427e9fca4801ef56417549ca5663e26e5608f143",
"count": 10,
"label": "Request-Samples",
"detail": "Sanitisierte Drittanbieter-Samples ohne vollständige Request-URLs.",
"status": "verfügbar"
},
{
"id": "checked_pages",
"hash": "3903dde5b44561eac5d3a165e3c39225de52f4d93421623bc0103a9e3daddd9f",
"count": 8,
"label": "Geprüfte Unterseiten",
"detail": "Priorisierte Pfade aus Sitemap, Pflichtseiten und interner Linkstruktur.",
"status": "verfügbar"
},
{
"id": "screenshot_file",
"hash": "333e76dc84cb73dfd05736c5d1096b9935fda2a2f1f2e6455daf632883d1d80a",
"count": 19153,
"label": "160x150 Seitenvorschau-Datei",
"detail": "/cache/screenshots/catchthemoment.ch-160x150-f81a049ccaaf23d0f8.png",
"status": "verfügbar"
}
],
"algorithm": "sha256",
"available": true,
"root_hash": "4aaa4c78048e07f753b1575350c13b4e9076091f17384ae77bf5671597fda338",
"checked_at": "2026-06-13T02:21:06+00:00",
"limitations": [
"Das Manifest schützt die im Report veröffentlichten/sanitisierten Nachweise, nicht verdeckte Cookie-Werte oder vollständige Request-URLs.",
"Ohne externe qualifizierte Zeitstempelung beweist der Hash Integrität des exportierten Artefakts, aber keine amtliche Zustellung."
],
"section_count": 9,
"canonicalization": "JSON UTF-8, sort_keys=true, kompakte Separatoren; Screenshot als rohe Datei-Bytes.",
"verification_steps": [
"JSON-Export speichern und den jeweiligen Abschnitt kanonisch mit sortierten Schlüsseln serialisieren.",
"SHA-256 des kanonischen Abschnitts bilden und mit dem Manifest vergleichen.",
"Screenshot-Datei separat als rohe Datei-Bytes hashen, falls ein Screenshot-Artefakt vorhanden ist.",
"Bei einem Wiederholungsscan Root-Hash, Zeitstempel und Abschnitts-Hashes getrennt vergleichen."
],
"available_hash_count": 9
},
"audit_evidence_pack": {
"status": "verfügbar",
"summary": "Nachweisprotokoll mit 50 Browser-Request(s), 3 Cookie-Nachweis(en), 9 Drittanbieter-Auszug/auszügen und 4 Consent-Zustand/Zuständen.",
"protocol": {
"host": "catchthemoment.ch",
"dns_ok": true,
"tls_ok": true,
"bot_url": "https://saferpage.de/bot",
"renderer": "playwright-chromium",
"final_url": "https://www.catchthemoment.ch/",
"input_url": "https://catchthemoment.ch/",
"checked_at": "2026-06-13T02:21:06+00:00",
"user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)",
"http_status": 200,
"scan_context": "manual",
"screenshot_url": "/cache/screenshots/catchthemoment.ch-160x150-f81a049ccaaf23d0f8.png",
"googlebot_status": 200,
"browser_final_url": "https://www.catchthemoment.ch/",
"dns_address_count": 2
},
"checkpoints": [
{
"label": "DNS",
"detail": "2 Adresse(n) aufgelöst.",
"status": "ok"
},
{
"label": "TLS/HTTPS",
"detail": "TLSv1.3",
"status": "ok"
},
{
"label": "HTTP-Abruf",
"detail": "Status 200, Endziel https://www.catchthemoment.ch/.",
"status": "ok"
},
{
"label": "Browserlauf",
"detail": "50 Request(s), 9 Drittanbieter-Domain(s).",
"status": "ok"
},
{
"label": "Consent-Zustände",
"detail": "Default, Ablehnen, Akzeptieren und GPC werden soweit möglich gegenübergestellt.",
"status": "prüfen"
},
{
"label": "Exports",
"detail": "PDF/Druck, JSON und CSV enthalten die wesentlichen Prüfnachweise.",
"status": "verfügbar"
}
],
"limitations": [
"Öffentliche Nachweise enthalten keine Cookie-Werte und keine vollständigen Request-URLs.",
"Der Scan ist ein passiver Browser- und HTTP-Kurzcheck; rechtliche Bewertung bleibt Betreiberaufgabe.",
"Dynamische Inhalte können sich je nach Region, Zeit, Gerät und Consent-Auswahl ändern."
],
"checked_pages": [
{
"path": "/kontakt",
"source": "homepage_link+sitemap",
"status": 0,
"category": "kontakt"
},
{
"path": "/kundengalerie/account",
"source": "sitemap",
"status": 0,
"category": "login"
},
{
"path": "/kundengalerie/cart",
"source": "sitemap",
"status": 0,
"category": "checkout"
},
{
"path": "/kundengalerie/checkout",
"source": "sitemap",
"status": 0,
"category": "checkout"
},
{
"path": "/preise",
"source": "sitemap",
"status": 0,
"category": "preise"
},
{
"path": "/preise-2",
"source": "homepage_link+sitemap",
"status": 0,
"category": "preise"
},
{
"path": "/",
"source": "sitemap",
"status": 0,
"category": "unterseite"
},
{
"path": "/audrey-bousquet-gewinnt-den-elite-model-look-final-2013",
"source": "sitemap",
"status": 0,
"category": "unterseite"
}
],
"cookie_evidence": [
{
"name": "_ga",
"domain": "catchthemoment.ch",
"secure": false,
"category": "Analytics",
"provider": "Google",
"tracking": true,
"retention": "lang (399 Tage)",
"same_site": "Lax",
"pre_consent": true
},
{
"name": "_ga_LLJ6DNTE7Q",
"domain": "catchthemoment.ch",
"secure": false,
"category": "Analytics",
"provider": "Google",
"tracking": true,
"retention": "lang (399 Tage)",
"same_site": "Lax",
"pre_consent": true
},
{
"name": "_GRECAPTCHA",
"domain": "google.com",
"secure": true,
"category": "Unklar",
"provider": "Google",
"tracking": false,
"retention": "mittel (179 Tage)",
"same_site": "None",
"pre_consent": true
}
],
"browser_evidence": {
"gpc_enabled": true,
"request_count": 50,
"storage_total": 2,
"accept_clicked": false,
"reject_clicked": false,
"browser_cookie_count": 3,
"contacted_domain_count": 10,
"third_party_domain_count": 9,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 3
},
"storage_evidence": {
"tracking_key_hints": [],
"local_storage_total": 1,
"session_storage_total": 1
},
"third_party_evidence": [
{
"host": "connect.facebook.net",
"category": "Social/Tracking",
"provider": "Meta/Facebook",
"transfer": "Drittland/USA",
"risk_level": "hoch",
"request_count": 2,
"resource_types": [
"script"
],
"privacy_relevant": true
},
{
"host": "region1.google-analytics.com",
"category": "Analytics",
"provider": "Google Analytics",
"transfer": "Drittland/USA",
"risk_level": "mittel",
"request_count": 1,
"resource_types": [
"fetch"
],
"privacy_relevant": true
},
{
"host": "googletagmanager.com",
"category": "Tag-Manager",
"provider": "Google Tag Manager",
"transfer": "Drittland/USA",
"risk_level": "mittel",
"request_count": 1,
"resource_types": [
"script"
],
"privacy_relevant": true
},
{
"host": "gstatic.com",
"category": "CDN",
"provider": "Google Static",
"transfer": "Drittland/USA",
"risk_level": "niedrig",
"request_count": 5,
"resource_types": [
"script",
"image",
"other",
"stylesheet"
],
"privacy_relevant": false
},
{
"host": "google.com",
"category": "Sonstige",
"provider": "google.com",
"transfer": "Drittland/USA",
"risk_level": "niedrig",
"request_count": 5,
"resource_types": [
"script",
"document",
"fetch",
"xhr"
],
"privacy_relevant": false
},
{
"host": "fonts.gstatic.com",
"category": "Schriften",
"provider": "Google Fonts",
"transfer": "Drittland/USA",
"risk_level": "mittel",
"request_count": 3,
"resource_types": [
"font"
],
"privacy_relevant": false
},
{
"host": "fonts.googleapis.com",
"category": "Schriften",
"provider": "Google Fonts",
"transfer": "Drittland/USA",
"risk_level": "mittel",
"request_count": 1,
"resource_types": [
"stylesheet"
],
"privacy_relevant": false
},
{
"host": "netdna.bootstrapcdn.com",
"category": "Sonstige",
"provider": "netdna.bootstrapcdn.com",
"transfer": "Jurisdiktion unklar",
"risk_level": "niedrig",
"request_count": 1,
"resource_types": [
"stylesheet"
],
"privacy_relevant": false
},
{
"host": "prophoto.s3.amazonaws.com",
"category": "Sonstige",
"provider": "prophoto.s3.amazonaws.com",
"transfer": "Jurisdiktion unklar",
"risk_level": "niedrig",
"request_count": 1,
"resource_types": [
"image"
],
"privacy_relevant": false
}
],
"external_script_count": 2,
"consent_state_evidence": [
{
"label": "Erstaufruf",
"cookie_count": 0,
"domain_count": 9,
"request_count": 20,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 3
},
{
"label": "Nach Ablehnen neu",
"cookie_count": 0,
"domain_count": 0,
"request_count": 0,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 0
},
{
"label": "Nach Akzeptieren neu",
"cookie_count": 0,
"domain_count": 0,
"request_count": 0,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 0
},
{
"label": "GPC-Aufruf",
"cookie_count": 0,
"domain_count": 9,
"request_count": 20,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 3
}
],
"request_sample_evidence": [
{
"host": "netdna.bootstrapcdn.com",
"query_keys": [],
"resource_type": "stylesheet",
"query_key_count": 0,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "googletagmanager.com",
"query_keys": [
"id"
],
"resource_type": "script",
"query_key_count": 1,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "fonts.googleapis.com",
"query_keys": [
"family"
],
"resource_type": "stylesheet",
"query_key_count": 1,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "prophoto.s3.amazonaws.com",
"query_keys": [],
"resource_type": "image",
"query_key_count": 0,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "google.com",
"query_keys": [
"render",
"ver"
],
"resource_type": "script",
"query_key_count": 2,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "fonts.gstatic.com",
"query_keys": [],
"resource_type": "font",
"query_key_count": 0,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "gstatic.com",
"query_keys": [],
"resource_type": "script",
"query_key_count": 0,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "connect.facebook.net",
"query_keys": [],
"resource_type": "script",
"query_key_count": 0,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "connect.facebook.net",
"query_keys": [
"hash"
],
"resource_type": "script",
"query_key_count": 1,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "region1.google-analytics.com",
"query_keys": [
"v",
"tid",
"gtm",
"_p",
"gcd",
"npa",
"dma_cps",
"dma"
],
"resource_type": "fetch",
"query_key_count": 38,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 1
}
]
}
}