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-/Hintergrund-Links. Betreiber-Hintergrund, Planungen, Checklisten, Code und allgemeine Empfehlungen stehen auf separaten Seiten.",
"current_evidence_policy": {
"schema": "https://saferpage.de/schemas/public-scan-current-evidence-policy.v1",
"status": "current_scan_fields_only",
"summary": "Der Fakten-JSON exportiert nur Felder, die im gespeicherten aktuellen Scan wirklich vorhanden sind. Fehlende neue Evidence wird nicht aus alten Testergebnisformaten nachgebaut.",
"guardrails": [
"Keine synthetischen Boundary-Fallbacks fuer alte Scans",
"Keine Nachbewertung alter Testergebnisse im Fakten-JSON",
"Keine Betreiber-Empfehlung im Report-JSON"
]
},
"host": "citywerkstatt-ansbach.de",
"normalized_url": "https://citywerkstatt-ansbach.de/",
"score": 52,
"verdict": {
"color": "orange",
"label": "auffällig",
"score": 52
},
"scan_id": "f84e5996-f3ff-4271-8e14-7f1d0a0eb0d9",
"created_at": "2026-06-19 20:51:51.625815+02",
"evidence": {
"dns": {
"ok": true,
"addresses": [
"212.114.69.162"
],
"duration_ms": 15
},
"tls": {
"ok": true,
"cipher": "TLS_AES_256_GCM_SHA384",
"issuer": [
[
[
"countryName",
"US"
]
],
[
[
"organizationName",
"Let's Encrypt"
]
],
[
[
"commonName",
"YE2"
]
]
],
"subject": [
[
[
"commonName",
"citywerkstatt-ansbach.de"
]
]
],
"version": "TLSv1.3",
"not_after": "Sep 17 00:12:54 2026 GMT",
"hostname_matches": true,
"days_until_expiry": 89,
"subject_alt_names": [
"citywerkstatt-ansbach.de",
"www.citywerkstatt-ansbach.de"
],
"issuer_common_name": "YE2"
},
"http": {
"ok": true,
"status": 200,
"headers": {
"date": "Fri, 19 Jun 2026 18:51:09 GMT",
"link": "<https://citywerkstatt-ansbach.de/wp-json/>; rel=\"https://api.w.org/\", <https://citywerkstatt-ansbach.de/wp-json/wp/v2/pages/848>; rel=\"alternate\"; title=\"JSON\"; type=\"application/json\", <https://citywerkstatt-ansbach.de/>; rel=shortlink",
"server": "Apache",
"upgrade": "h2,h2c",
"connection": "Upgrade, close",
"content-type": "text/html; charset=UTF-8",
"transfer-encoding": "chunked",
"access-control-allow-origin": "*"
},
"body_size": 115613,
"final_url": "https://citywerkstatt-ansbach.de/",
"duration_ms": 2714
},
"scanner": {
"bot_url": "https://saferpage.de/bot",
"context": "crawler",
"user_agent": "SaferPageCrawler/0.3 (+https://saferpage.de/bot; schedules passive DACH website checks; report examples: https://saferpage.de/tests; kostenloser Report: <a href=\"https://saferpage.de/citywerkstatt-ansbach.de\">https://saferpage.de/citywerkstatt-ansbach.de</a>)",
"default_user_agent": "SaferPageBot/0.2 (+https://saferpage.de/bot; passive website safety check; no attack tests)"
},
"domain_records": {
"mx": true,
"caa": false,
"spf": false,
"dmarc": false,
"dnssec": false,
"records": {
"mx": [
"10 mx1.osn.de.",
"20 mx2.osn.de.",
"30 mx3.osn.de."
],
"ns": [
"dns.osn.de.",
"dns.osn.net.",
"dns.osn.org."
],
"caa": [],
"txt": [],
"cname": [],
"dmarc": [],
"dnskey_present": false
},
"spf_includes": [],
"verifications": []
},
"googlebot_http": {
"ok": true,
"status": 200,
"headers": {
"date": "Fri, 19 Jun 2026 18:51:09 GMT",
"link": "<https://citywerkstatt-ansbach.de/wp-json/>; rel=\"https://api.w.org/\", <https://citywerkstatt-ansbach.de/wp-json/wp/v2/pages/848>; rel=\"alternate\"; title=\"JSON\"; type=\"application/json\", <https://citywerkstatt-ansbach.de/>; rel=shortlink",
"server": "Apache",
"upgrade": "h2,h2c",
"connection": "Upgrade, close",
"content-type": "text/html; charset=UTF-8",
"transfer-encoding": "chunked",
"access-control-allow-origin": "*"
},
"body_size": 115613,
"final_url": "https://citywerkstatt-ansbach.de/",
"duration_ms": 2493
},
"ai_search_policy_evidence": {
"files": [
{
"id": "robots_txt",
"url": "https://citywerkstatt-ansbach.de/robots.txt",
"label": "robots.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3091,
"http_status": null,
"relevant_lines": []
},
{
"id": "llms_txt",
"url": "https://citywerkstatt-ansbach.de/llms.txt",
"label": "llms.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3074,
"http_status": null,
"relevant_lines": []
},
{
"id": "ai_txt",
"url": "https://citywerkstatt-ansbach.de/.well-known/ai.txt",
"label": "AI Policy",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3047,
"http_status": null,
"relevant_lines": []
},
{
"id": "ai_policy_txt",
"url": "https://citywerkstatt-ansbach.de/.well-known/ai-policy.txt",
"label": "AI Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 2704,
"http_status": 404,
"relevant_lines": []
},
{
"id": "ward_txt",
"url": "https://citywerkstatt-ansbach.de/.well-known/ward.txt",
"label": "WARD Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 1287,
"http_status": 404,
"relevant_lines": []
}
],
"origin": "https://citywerkstatt-ansbach.de",
"schema": "https://saferpage.de/schemas/ai-search-policy-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 5,
"found_file_count": 0,
"policy_file_count": 0,
"explicit_ai_bot_count": 0
},
"summary": "0 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": 0,
"llms_ward_policy_status": "not_publicly_verified",
"robots_ai_policy_status": "robots_missing"
},
"adtech_transparency_evidence": {
"files": [
{
"id": "ads_txt",
"url": "https://citywerkstatt-ansbach.de/ads.txt",
"label": "ads.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3096,
"http_status": null,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
},
{
"id": "app_ads_txt",
"url": "https://citywerkstatt-ansbach.de/app-ads.txt",
"label": "app-ads.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3103,
"http_status": null,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
},
{
"id": "sellers_json",
"url": "https://citywerkstatt-ansbach.de/sellers.json",
"label": "sellers.json",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3038,
"http_status": null,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
}
],
"origin": "https://citywerkstatt-ansbach.de",
"schema": "https://saferpage.de/schemas/adtech-transparency-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 3,
"direct_count": 0,
"reseller_count": 0,
"found_file_count": 0,
"ads_txt_entry_count": 0,
"exchange_domain_count": 0,
"app_ads_txt_entry_count": 0,
"sellers_json_seller_count": 0
},
"summary": "0 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": false,
"reseller_count": 0,
"app_ads_txt_found": false,
"sellers_json_found": false,
"ads_txt_entry_count": 0,
"exchange_domain_count": 0,
"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://citywerkstatt-ansbach.de/.well-known/security.txt",
"label": "security.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3087,
"http_status": null,
"relevant_lines": [],
"security_txt_policy": []
},
{
"id": "security_txt_legacy",
"url": "https://citywerkstatt-ansbach.de/security.txt",
"label": "security.txt legacy",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3064,
"http_status": null,
"relevant_lines": [],
"security_txt_policy": []
}
],
"origin": "https://citywerkstatt-ansbach.de",
"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": 0,
"preferred_well_known_found": 0
},
"summary": "0 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": false,
"preferred_well_known_found": false
}
},
"findings": [
{
"id": "hidden_text",
"title": "Versteckter Text erkannt",
"public": true,
"audience": "nutzer",
"category": "seo",
"severity": "warning",
"evidence_items": [
"„Citywerkstatt Ansbach\" (display:none)",
"„Unsere Projekte\" (display:none)",
"„Jetzt mitmachen!\" (display:none)",
"„Kontaktmöglichkeiten\" (display:none)",
"„hmaussner\" (display:none)"
],
"user_importance": 128,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "browser_consent_accept_only",
"title": "Consent-Banner wirkt im Browser wie Akzeptieren-only",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 123,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "consent_no_reject_option",
"title": "Cookie-Hinweis ohne klare Ablehnen-Option",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"evidence_items": [
"Sichtbare Banner-Controls: Akzeptieren 1, Ablehnen 0, Einstellungen 0"
],
"user_importance": 121,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "consent_accept_only",
"title": "Consent wirkt wie Nur-Akzeptieren",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"evidence_items": [
"Sichtbare Banner-Controls: Akzeptieren 1, Ablehnen 0, Einstellungen 0"
],
"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",
"evidence_items": [
"ihknuernberg.matomo.cloud"
],
"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",
"evidence_items": [
"Tracking-Signale auf einer Seite mit Dateneingabe/Formular erkannt"
],
"user_importance": 118,
"importance_label": "Wichtig für Nutzer",
"third_party_count": 2
},
{
"id": "gpc_privacy_domains_present",
"count": 2,
"title": "Datenschutzrelevante Kontakte trotz GPC-Signal",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"evidence_items": [
"Trotz GPC: 2 Datenschutz-Domain(s), 0 Drittanbieter-Cookie(s)"
],
"user_importance": 116,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "beacon_api_usage",
"count": 2,
"title": "Beacon-/Keepalive-Telemetrie erkannt",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"evidence_items": [
"Beacon-/Keepalive-Telemetrie im Browser-Lauf erkannt"
],
"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",
"evidence_items": [
"Erkannte Anbieter sind nicht alle in der Datenschutzerklärung erwähnt"
],
"user_importance": 116,
"importance_label": "Wichtig für Nutzer",
"missing_providers": [
"Matomo"
]
},
{
"id": "consent_state_gpc_evidence_review",
"title": "Consent-Zustand: GPC mit Tracking-Hinweisen",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"evidence_items": [
"GPC-Signal (Global Privacy Control) gesetzt – tatsächliche Wirkung manuell prüfen"
],
"user_importance": 112,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "privacy_policy_required_items_missing",
"title": "Datenschutzerklärung deckt zentrale Bausteine nicht vollständig ab",
"public": true,
"missing": [
"Rechtsgrundlagen",
"Betroffenenrechte",
"Speicherfrist / Löschung",
"Empfänger / Auftragsverarbeiter",
"Widerruf / Opt-out",
"Beschwerde bei Aufsichtsbehörde",
"Drittlandtransfer",
"Stand / Aktualitätsdatum"
],
"audience": "nutzer",
"category": "privacy",
"severity": "warning",
"user_importance": 112,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "browser_keystroke_listener_signals",
"count": 12,
"title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"evidence_items": [
"Tastatur-Eingabe-Listener (Session-Replay-nah) im Browser-Lauf erkannt"
],
"user_importance": 110,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "slow_response",
"title": "Langsame Serverantwort",
"public": true,
"audience": "nutzer",
"category": "performance",
"severity": "warning",
"evidence_items": [
"Antwortzeit: 2714 ms"
],
"user_importance": 96,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "privacy_policy_update_date_missing",
"title": "Stand der Datenschutzerklärung nicht klar erkennbar",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"user_importance": 94,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "browser_consent_settings_missing",
"title": "Keine sichtbaren Cookie-Einstellungen im Banner",
"public": true,
"audience": "nutzer",
"category": "privacy",
"severity": "info",
"user_importance": 86,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "button_name_missing",
"count": 2,
"title": "Buttons ohne erkennbaren Namen",
"public": true,
"audience": "nutzer",
"category": "accessibility",
"severity": "warning",
"evidence_items": [
"type=button",
"type=button"
],
"user_importance": 86,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "image_alt_missing",
"count": 2,
"title": "Bilder ohne Alternativtext",
"public": true,
"audience": "nutzer",
"category": "accessibility",
"severity": "info",
"evidence_items": [
"https://citywerkstatt-ansbach.de/wp-content/uploads/sites/30/2023/04/logo-ihk.png",
"https://citywerkstatt-ansbach.de/wp-content/uploads/sites/30/2023/04/ansbach-logo.jpg"
],
"user_importance": 82,
"importance_label": "Wichtig für Nutzer"
},
{
"id": "missing_hsts",
"title": "HSTS fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "warning",
"evidence_items": [
"HTTP-Header „Strict-Transport-Security\" fehlt in der Antwort der Startseite"
],
"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",
"evidence_items": [
"Viele render-blockierende CSS/JS-Ressourcen im <head> der Startseite"
],
"user_importance": 74,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_csp",
"title": "Content-Security-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "warning",
"evidence_items": [
"HTTP-Header „Content-Security-Policy\" fehlt in der Antwort der Startseite"
],
"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",
"evidence_items": [
"HTTP-Header „X-Frame-Options\" fehlt in der Antwort der Startseite"
],
"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",
"evidence_items": [
"HTTP-Header „X-Content-Type-Options\" fehlt in der Antwort der Startseite"
],
"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",
"evidence_items": [
"HTTP-Header „Cross-Origin-Embedder-Policy\" fehlt in der Antwort der Startseite"
],
"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",
"evidence_items": [
"HTTP-Header „Cross-Origin-Opener-Policy\" fehlt in der Antwort der Startseite"
],
"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",
"evidence_items": [
"HTTP-Header „Cross-Origin-Resource-Policy\" fehlt in der Antwort der Startseite"
],
"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",
"evidence_items": [
"cdn.matomo.cloud",
"ihknuernberg.matomo.cloud"
],
"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",
"evidence_items": [
"Banner-UX: Akzeptieren 1 vs. Ablehnen 0 – Ablehnen weniger prominent/gleichwertig"
],
"user_importance": 60,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_referrer_policy",
"title": "Referrer-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "info",
"evidence_items": [
"HTTP-Header „Referrer-Policy\" fehlt in der Antwort der Startseite"
],
"user_importance": 40,
"importance_label": "Technischer Hinweis"
},
{
"id": "missing_permissions_policy",
"title": "Permissions-Policy fehlt",
"public": true,
"audience": "betreiber",
"category": "security_headers",
"severity": "info",
"evidence_items": [
"HTTP-Header „Permissions-Policy\" fehlt in der Antwort der Startseite"
],
"user_importance": 40,
"importance_label": "Technischer Hinweis"
}
],
"audit_modules": [
{
"id": "security_tls",
"color": "red",
"score": 34,
"title": "Sicherheit, TLS & Header",
"source": "DNS, TLS, HTTP-Status, Zertifikat und Security-Header",
"status": "kritisch",
"evidence": "2 Infrastruktur-Hinweis(e), Security-Header: 0/9 vorhanden, 9 fehlen, externe Skript-Hosts: 0."
},
{
"id": "privacy_consent",
"color": "red",
"score": 38,
"title": "Datenschutz, Cookies & Consent",
"source": "Browser, HTTP-Header, HTML und Consent-/Cookie-Heuristik",
"status": "kritisch",
"evidence": "0 Tracking-Script(s), 0 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 38."
},
{
"id": "browser_evidence",
"color": "orange",
"score": 58,
"title": "Browser-Nachweis",
"source": "Headless Chromium mit Screenshot- und Request-Telemetrie",
"status": "auffällig",
"evidence": "35 Request(s), 2 Drittanbieter-Domain(s), davon 2 datenschutzrelevant, 0 Browser-Cookie(s), Transfer-Prüfbedarf: 0, Referrer-/URL-Leaks: 1, Fingerprinting-/Replay-Hinweise: 1."
},
{
"id": "accessibility_usability",
"color": "yellow",
"score": 76,
"title": "Barrierefreiheit & Usability",
"source": "Passives HTML-Sample: Bilder, Formulare, Buttons, Sprache, Headings und Viewport",
"status": "prüfen",
"evidence": "2 Bild(er) ohne alt, 0 Formularfeld(er) ohne Beschriftung, 2 Button(s) ohne Namen."
},
{
"id": "tracking_pixels_beacons",
"color": "yellow",
"score": 76,
"title": "Tracking-Pixel & Beacons",
"source": "HTML-Pixel, Link-Ping-Attribute, Chromium-Requests und Browser-API-Instrumentierung",
"status": "prüfen",
"evidence": "0 Pixel-/Bildtracking-Hinweis(e), 2 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s)."
},
{
"id": "site_coverage",
"color": "yellow",
"score": 81,
"title": "Seitenabdeckung & Crawl",
"source": "Startseiten-Links, Compliance-Links und begrenzter interner Zusatzabruf",
"status": "prüfen",
"evidence": "30 interne Linkziele erkannt, 4 priorisierte Unterseite(n) abgerufen."
},
{
"id": "forms_payments",
"color": "yellow",
"score": 82,
"title": "Formulare, Login & Zahlung",
"source": "HTML-Formulare, Eingabefelder, Zahlungsanbieter und Kontextlinks",
"status": "prüfen",
"evidence": "Aus diesem Rohfeld wird im Report keine zusätzliche Scan-Feststellung abgeleitet; Betreiberkontext und Umsetzungshinweise stehen auf separaten Seiten."
},
{
"id": "google_third_parties",
"color": "green",
"score": 100,
"title": "Google-Dienste & Drittanbieter",
"source": "Chromium-Requests, Anbieterklassifikation und Google Consent Mode Heuristik",
"status": "unauffällig",
"evidence": "Keine Google-Domain, keine Google-Tracking-ID und keine datenschutzrelevanten Drittanbieter im passiven Check erkannt."
},
{
"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": "performance_mobile",
"color": "yellow",
"score": 82,
"title": "Performance & mobile Nutzbarkeit",
"source": "HTTP-Antwort, HTML-Größe, Komprimierung und mobile Basis",
"status": "prüfen",
"evidence": "Performance-Score 82, Antwortzeit 2714 ms."
},
{
"id": "seo_integrity",
"color": "yellow",
"score": 82,
"title": "SEO-Integrität & Cloaking",
"source": "HTML-Inhalt, strukturierte Daten, Links und Googlebot-Vergleich",
"status": "prüfen",
"evidence": "1 SEO-Spam-Hinweis(e), 0 Cloaking-Hinweis(e)."
},
{
"id": "consent_journey",
"color": "yellow",
"score": 84,
"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, 2 im GPC-Aufruf."
},
{
"id": "referrer_url_leaks",
"color": "yellow",
"score": 88,
"title": "Referrer & URL-Leaks",
"source": "Chromium-Request-Telemetrie ohne gespeicherte Parameterwerte",
"status": "prüfen",
"evidence": "1 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 0 sensible Query-Kontexte."
},
{
"id": "cookie_inventory",
"color": "green",
"score": 100,
"title": "Cookie-Inventar",
"source": "HTTP-Set-Cookie und Chromium-Cookies beim ersten Seitenaufruf",
"status": "unauffällig",
"evidence": "0 Cookie(s), 0 Tracking-/Werbe-Cookie(s), 0 Drittanbieter-Cookie(s), 0 langlebig, 0 sehr lang."
},
{
"id": "embedded_content",
"color": "green",
"score": 100,
"title": "Externe Inhalte & Widgets",
"source": "HTML-Embeds und Chromium-Drittanbieter-Requests",
"status": "unauffällig",
"evidence": "0 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen."
},
{
"id": "script_supply_chain",
"color": "green",
"score": 100,
"title": "Externe Skripte & SRI",
"source": "HTML-Script-Tags, Anbieterklassifikation und SRI-Attribute",
"status": "unauffällig",
"evidence": "0 externe Skript(e) von 0 Host(s), 0 ohne SRI, 0 Tracking-/Tag-nahe Skript(e)."
},
{
"id": "operator_transparency",
"color": "green",
"score": 100,
"title": "Impressum, Kontakt & Datenschutzerklärung",
"source": "Deutschsprachige Betreiber- und Datenschutzhinweis-Erkennung",
"status": "unauffällig",
"evidence": "Impressum: ja, Datenschutz: ja, Kontakt: ja."
}
],
"ai_search_policy_evidence": {
"files": [
{
"id": "robots_txt",
"url": "https://citywerkstatt-ansbach.de/robots.txt",
"label": "robots.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3091,
"http_status": null,
"relevant_lines": []
},
{
"id": "llms_txt",
"url": "https://citywerkstatt-ansbach.de/llms.txt",
"label": "llms.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3074,
"http_status": null,
"relevant_lines": []
},
{
"id": "ai_txt",
"url": "https://citywerkstatt-ansbach.de/.well-known/ai.txt",
"label": "AI Policy",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3047,
"http_status": null,
"relevant_lines": []
},
{
"id": "ai_policy_txt",
"url": "https://citywerkstatt-ansbach.de/.well-known/ai-policy.txt",
"label": "AI Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 2704,
"http_status": 404,
"relevant_lines": []
},
{
"id": "ward_txt",
"url": "https://citywerkstatt-ansbach.de/.well-known/ward.txt",
"label": "WARD Policy",
"reason": "http_error",
"status": "missing",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 1287,
"http_status": 404,
"relevant_lines": []
}
],
"origin": "https://citywerkstatt-ansbach.de",
"schema": "https://saferpage.de/schemas/ai-search-policy-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 5,
"found_file_count": 0,
"policy_file_count": 0,
"explicit_ai_bot_count": 0
},
"summary": "0 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": 0,
"llms_ward_policy_status": "not_publicly_verified",
"robots_ai_policy_status": "robots_missing"
},
"adtech_transparency_evidence": {
"files": [
{
"id": "ads_txt",
"url": "https://citywerkstatt-ansbach.de/ads.txt",
"label": "ads.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3096,
"http_status": null,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
},
{
"id": "app_ads_txt",
"url": "https://citywerkstatt-ansbach.de/app-ads.txt",
"label": "app-ads.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3103,
"http_status": null,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
},
{
"id": "sellers_json",
"url": "https://citywerkstatt-ansbach.de/sellers.json",
"label": "sellers.json",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3038,
"http_status": null,
"ads_txt_policy": [],
"relevant_lines": [],
"sellers_json_policy": []
}
],
"origin": "https://citywerkstatt-ansbach.de",
"schema": "https://saferpage.de/schemas/adtech-transparency-evidence.v1",
"status": "checked",
"metrics": {
"file_count": 3,
"direct_count": 0,
"reseller_count": 0,
"found_file_count": 0,
"ads_txt_entry_count": 0,
"exchange_domain_count": 0,
"app_ads_txt_entry_count": 0,
"sellers_json_seller_count": 0
},
"summary": "0 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": false,
"reseller_count": 0,
"app_ads_txt_found": false,
"sellers_json_found": false,
"ads_txt_entry_count": 0,
"exchange_domain_count": 0,
"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://citywerkstatt-ansbach.de/.well-known/security.txt",
"label": "security.txt",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3087,
"http_status": null,
"relevant_lines": [],
"security_txt_policy": []
},
{
"id": "security_txt_legacy",
"url": "https://citywerkstatt-ansbach.de/security.txt",
"label": "security.txt legacy",
"reason": "fetch_failed",
"status": "not_available",
"body_size": 0,
"truncated": false,
"body_sha256": "",
"duration_ms": 3064,
"http_status": null,
"relevant_lines": [],
"security_txt_policy": []
}
],
"origin": "https://citywerkstatt-ansbach.de",
"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": 0,
"preferred_well_known_found": 0
},
"summary": "0 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": false,
"preferred_well_known_found": false
},
"site_coverage_analysis": {
"color": "yellow",
"pages": [
{
"url": "https://citywerkstatt-ansbach.de/datenschutz",
"path": "/datenschutz",
"text": "Hinweise zum Datenschutz",
"source": "homepage_link+sitemap",
"category": "datenschutz",
"priority": 104
},
{
"url": "https://citywerkstatt-ansbach.de/impressum",
"path": "/impressum",
"text": "Impressum | Kontakt",
"source": "homepage_link+sitemap",
"category": "impressum",
"priority": 100
},
{
"url": "https://citywerkstatt-ansbach.de/kontakt",
"path": "/kontakt",
"text": "Kontakt",
"source": "homepage_link+sitemap",
"category": "kontakt",
"priority": 94
},
{
"url": "https://citywerkstatt-ansbach.de/",
"path": "/",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2022/03/17/startschuss-fuer-die-citywerkstatt-ansbach-auftaktveranstaltung-und-erste-werkstattrunde",
"path": "/2022/03/17/startschuss-fuer-die-citywerkstatt-ansbach-auftaktveranstaltung-und-erste-werkstattrunde",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2022/05/23/offizielle-vorstellung-der-regenschirme-fuer-die-innenstadt",
"path": "/2022/05/23/offizielle-vorstellung-der-regenschirme-fuer-die-innenstadt",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2023/04/26/ansbach-schriftzug-in-betrieb-genommen",
"path": "/2023/04/26/ansbach-schriftzug-in-betrieb-genommen",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2023/05/11/zweite-werkstattrunde",
"path": "/2023/05/11/zweite-werkstattrunde",
"text": "",
"source": "sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2023/07/31/ansbach-lacht-emotionen-im-foto",
"path": "/2023/07/31/ansbach-lacht-emotionen-im-foto",
"text": "„Ansbach lacht“ – Emotionen im Foto",
"source": "homepage_link+sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2023/11/14/ansbacher-stiefel-rallye-eine-aktion-fuer-kinder-von-der-citywerkstatt",
"path": "/2023/11/14/ansbacher-stiefel-rallye-eine-aktion-fuer-kinder-von-der-citywerkstatt",
"text": "Ansbacher Stiefel-Rallye: Eine Aktion für Kinder von der Citywerkstatt (ausgebuc",
"source": "homepage_link+sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2024/04/18/kronenstrasse-neugestaltet",
"path": "/2024/04/18/kronenstrasse-neugestaltet",
"text": "Kronenstraße neugestaltet",
"source": "homepage_link+sitemap",
"category": "unterseite",
"priority": 24
},
{
"url": "https://citywerkstatt-ansbach.de/2024/10/22/neue-beschilderung-fuer-radlerinnen-und-radler",
"path": "/2024/10/22/neue-beschilderung-fuer-radlerinnen-und-radler",
"text": "Neue Beschilderung für Radlerinnen und Radler",
"source": "homepage_link+sitemap",
"category": "unterseite",
"priority": 24
}
],
"score": 81,
"status": "prüfen",
"summary": "30 interne Linkziele erkannt (49 aus Sitemap), 4 priorisierte Unterseite(n) zusätzlich abgerufen.",
"findings": [
{
"id": "privacy_policy_required_items_missing",
"title": "Datenschutzerklärung deckt zentrale Bausteine nicht vollständig ab",
"public": true,
"missing": [
"Rechtsgrundlagen",
"Betroffenenrechte",
"Speicherfrist / Löschung",
"Empfänger / Auftragsverarbeiter",
"Widerruf / Opt-out",
"Beschwerde bei Aufsichtsbehörde",
"Drittlandtransfer",
"Stand / Aktualitätsdatum"
],
"category": "privacy",
"severity": "warning"
},
{
"id": "privacy_policy_update_date_missing",
"title": "Stand der Datenschutzerklärung nicht klar erkennbar",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "privacy_policy_provider_disclosure_gap",
"title": "Erkannte Anbieter fehlen in der Datenschutzerklärung",
"public": true,
"category": "privacy",
"severity": "warning",
"missing_providers": [
"Matomo"
]
}
],
"robots_ok": true,
"categories": {
"kontakt": 1,
"impressum": 1,
"unterseite": 27,
"datenschutz": 1
},
"sample_limit": 4,
"sampled_count": 4,
"sampled_pages": [
{
"ok": true,
"url": "https://citywerkstatt-ansbach.de/datenschutz",
"path": "/datenschutz",
"audit": {
"form_count": 2,
"finding_ids": [
"consent_no_reject_option",
"consent_accept_only"
],
"cookie_count": 0,
"imprint_found": true,
"consent_hint_found": true,
"reject_option_found": false,
"privacy_policy_found": true,
"tracking_script_count": 0,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 2,
"title": "Datenschutz – Citywerkstatt Ansbach",
"status": 200,
"category": "datenschutz",
"duration_ms": 2099,
"privacy_hint": true,
"privacy_policy_audit": {
"url": "https://citywerkstatt-ansbach.de/datenschutz",
"color": "red",
"found": [
"Verantwortlicher / Anbieter",
"Kontakt / Datenschutzkontakt",
"Zwecke der Verarbeitung",
"Cookies / Tracking",
"Datenschutzkontakt / DPO-Hinweis",
"Verständliche Satzlänge"
],
"score": 43,
"checks": [
{
"id": "controller_identity",
"found": true,
"label": "Verantwortlicher / Anbieter"
},
{
"id": "contact",
"found": true,
"label": "Kontakt / Datenschutzkontakt"
},
{
"id": "purposes",
"found": true,
"label": "Zwecke der Verarbeitung"
},
{
"id": "legal_basis",
"found": false,
"label": "Rechtsgrundlagen"
},
{
"id": "rights",
"found": false,
"label": "Betroffenenrechte"
},
{
"id": "retention",
"found": false,
"label": "Speicherfrist / Löschung"
},
{
"id": "recipients",
"found": false,
"label": "Empfänger / Auftragsverarbeiter"
},
{
"id": "cookies_tracking",
"found": true,
"label": "Cookies / Tracking"
},
{
"id": "withdrawal",
"found": false,
"label": "Widerruf / Opt-out"
},
{
"id": "complaint_authority",
"found": false,
"label": "Beschwerde bei Aufsichtsbehörde"
},
{
"id": "third_country_transfer",
"found": false,
"label": "Drittlandtransfer"
},
{
"id": "update_date",
"found": false,
"label": "Stand / Aktualitätsdatum",
"detail": ""
},
{
"id": "dpo_contact",
"found": true,
"label": "Datenschutzkontakt / DPO-Hinweis"
},
{
"id": "readability",
"found": true,
"label": "Verständliche Satzlänge",
"detail": "12.1 Wörter/Satz"
}
],
"status": "kritisch",
"missing": [
"Rechtsgrundlagen",
"Betroffenenrechte",
"Speicherfrist / Löschung",
"Empfänger / Auftragsverarbeiter",
"Widerruf / Opt-out",
"Beschwerde bei Aufsichtsbehörde",
"Drittlandtransfer",
"Stand / Aktualitätsdatum"
],
"summary": "6 von 14 zentralen Datenschutz-Bausteinen erkannt.",
"findings": [
{
"id": "privacy_policy_update_date_missing",
"title": "Stand der Datenschutzerklärung nicht klar erkennbar",
"public": true,
"category": "privacy",
"severity": "info"
}
],
"available": true,
"freshness": {
"stale": false,
"age_days": null,
"last_updated": "",
"update_date_found": false
},
"word_count": 545,
"readability": {
"hard_to_read": false,
"sentence_count": 45,
"avg_sentence_words": 12.1
},
"missing_count": 8,
"dpo_contact_found": true
}
},
{
"ok": true,
"url": "https://citywerkstatt-ansbach.de/impressum",
"path": "/impressum",
"audit": {
"form_count": 2,
"finding_ids": [
"privacy_policy_too_thin",
"consent_no_reject_option",
"consent_accept_only"
],
"cookie_count": 0,
"imprint_found": true,
"consent_hint_found": true,
"reject_option_found": false,
"privacy_policy_found": true,
"tracking_script_count": 0,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 2,
"title": "Impressum – Citywerkstatt Ansbach",
"status": 200,
"category": "impressum",
"duration_ms": 2293,
"privacy_hint": true,
"privacy_policy_audit": []
},
{
"ok": true,
"url": "https://citywerkstatt-ansbach.de/kontakt",
"path": "/kontakt",
"audit": {
"form_count": 2,
"finding_ids": [
"operator_identity_unclear",
"privacy_policy_too_thin",
"consent_no_reject_option",
"consent_accept_only"
],
"cookie_count": 0,
"imprint_found": true,
"consent_hint_found": true,
"reject_option_found": false,
"privacy_policy_found": true,
"tracking_script_count": 0,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 2,
"title": "Kontakt – Citywerkstatt Ansbach",
"status": 200,
"category": "kontakt",
"duration_ms": 2372,
"privacy_hint": true,
"privacy_policy_audit": []
},
{
"ok": true,
"url": "https://citywerkstatt-ansbach.de/",
"path": "/",
"audit": {
"form_count": 2,
"finding_ids": [
"operator_identity_unclear",
"privacy_policy_too_thin",
"consent_no_reject_option",
"consent_accept_only"
],
"cookie_count": 0,
"imprint_found": true,
"consent_hint_found": true,
"reject_option_found": false,
"privacy_policy_found": true,
"tracking_script_count": 0,
"pre_consent_cookie_count": 0,
"pre_consent_tracking_cookie_count": 0
},
"forms": 2,
"title": "Citywerkstatt Ansbach – Nachhaltige Belebung für die Innenstadt",
"status": 200,
"category": "unterseite",
"duration_ms": 1393,
"privacy_hint": true,
"privacy_policy_audit": []
}
],
"robots_checked": true,
"sitemap_sources": [
"https://citywerkstatt-ansbach.de/wp-sitemap.xml",
"https://citywerkstatt-ansbach.de/sitemap.xml",
"https://citywerkstatt-ansbach.de/wp-sitemap-posts-post-1.xml",
"https://citywerkstatt-ansbach.de/wp-sitemap-posts-page-1.xml",
"https://citywerkstatt-ansbach.de/wp-sitemap-taxonomies-category-1.xml"
],
"sitemap_available": true,
"sitemap_url_count": 49,
"homepage_link_count": 56,
"internal_link_count": 30,
"privacy_policy_audit": {
"url": "https://citywerkstatt-ansbach.de/datenschutz",
"color": "red",
"found": [
"Verantwortlicher / Anbieter",
"Kontakt / Datenschutzkontakt",
"Zwecke der Verarbeitung",
"Cookies / Tracking",
"Datenschutzkontakt / DPO-Hinweis",
"Verständliche Satzlänge"
],
"score": 43,
"checks": [
{
"id": "controller_identity",
"found": true,
"label": "Verantwortlicher / Anbieter"
},
{
"id": "contact",
"found": true,
"label": "Kontakt / Datenschutzkontakt"
},
{
"id": "purposes",
"found": true,
"label": "Zwecke der Verarbeitung"
},
{
"id": "legal_basis",
"found": false,
"label": "Rechtsgrundlagen"
},
{
"id": "rights",
"found": false,
"label": "Betroffenenrechte"
},
{
"id": "retention",
"found": false,
"label": "Speicherfrist / Löschung"
},
{
"id": "recipients",
"found": false,
"label": "Empfänger / Auftragsverarbeiter"
},
{
"id": "cookies_tracking",
"found": true,
"label": "Cookies / Tracking"
},
{
"id": "withdrawal",
"found": false,
"label": "Widerruf / Opt-out"
},
{
"id": "complaint_authority",
"found": false,
"label": "Beschwerde bei Aufsichtsbehörde"
},
{
"id": "third_country_transfer",
"found": false,
"label": "Drittlandtransfer"
},
{
"id": "update_date",
"found": false,
"label": "Stand / Aktualitätsdatum",
"detail": ""
},
{
"id": "dpo_contact",
"found": true,
"label": "Datenschutzkontakt / DPO-Hinweis"
},
{
"id": "readability",
"found": true,
"label": "Verständliche Satzlänge",
"detail": "12.1 Wörter/Satz"
}
],
"status": "kritisch",
"missing": [
"Rechtsgrundlagen",
"Betroffenenrechte",
"Speicherfrist / Löschung",
"Empfänger / Auftragsverarbeiter",
"Widerruf / Opt-out",
"Beschwerde bei Aufsichtsbehörde",
"Drittlandtransfer",
"Stand / Aktualitätsdatum"
],
"summary": "6 von 14 zentralen Datenschutz-Bausteinen erkannt.",
"findings": [
{
"id": "privacy_policy_update_date_missing",
"title": "Stand der Datenschutzerklärung nicht klar erkennbar",
"public": true,
"category": "privacy",
"severity": "info"
}
],
"available": true,
"freshness": {
"stale": false,
"age_days": null,
"last_updated": "",
"update_date_found": false
},
"word_count": 545,
"readability": {
"hard_to_read": false,
"sentence_count": 45,
"avg_sentence_words": 12.1
},
"missing_count": 8,
"dpo_contact_found": true
},
"sitemap_source_count": 5,
"provider_disclosure_audit": {
"color": "red",
"found": [],
"score": 0,
"checks": [
{
"id": "analytics_matomo",
"found": false,
"category": "analytics",
"evidence": [
"cdn.matomo.cloud",
"ihknuernberg.matomo.cloud"
],
"keywords": [
"matomo",
"piwik"
],
"provider": "Matomo",
"category_label": "Analytics"
}
],
"status": "kritisch",
"missing": [
"Matomo"
],
"summary": "0 von 1 technisch erkannten Anbieter(n) wurden in der Datenschutzerklärung erwähnt.",
"available": true,
"missing_count": 1,
"detected_count": 1,
"mentioned_count": 0
},
"important_categories_found": [
"datenschutz",
"impressum",
"kontakt"
],
"sampled_tracking_page_count": 0,
"sampled_form_privacy_gap_count": 0,
"sitemap_candidate_source_count": 2
},
"page_analysis": {
"h1": [
"Citywerkstatt Ansbach",
"Unsere Projekte",
"Jetzt mitmachen!",
"Kontaktmöglichkeiten"
],
"h2": [
"Nachhaltige Belebung für die Innenstadt",
"Was wir tun - und wofür",
"Eigene Ideen einbringen und die Innenstadt beleben",
"Ansprechpartner der Citywerkstatt Ansbach",
"Was ist die Citywerkstatt Ansbach?",
"Was sind die Ziele der Citywerkstatt Ansbach?",
"Meldungen",
"Wer ist die Citywerkstatt Ansbach?",
"Wie kann die Citywerkstatt Projekte unterstützen?"
],
"title": "Citywerkstatt Ansbach – Nachhaltige Belebung für die Innenstadt",
"keywords": [
[
"ansbach",
27
],
[
"citywerkstatt",
19
],
[
"ansbacher",
14
],
[
"innenstadt",
12
],
[
"nürnberg",
8
],
[
"projekte",
8
],
[
"mittelfranken",
7
],
[
"stadt",
6
],
[
"industrie-",
5
],
[
"handelskammer",
5
]
],
"language": "de",
"description": "Was ist die Citywerkstatt Ansbach? \r\n\r\nDie Citywerkstatt ist eine gemeinsame Initiative der Industrie- und Handelskammer Nürnberg für Mittelfranken (IHK) und der Stadt Ansbach und hat sich zur Aufgabe gemacht, die Ansbacher Innenstadt lebendiger zu machen.\r\n\r\nSie ist angelehnt an das Erfolgsmodell der \"Nürnberger Citywerkstatt\"",
"favicon_url": "https://citywerkstatt-ansbach.de/wp-content/uploads/sites/30/2022/05/favicon.png",
"link_counts": {
"external": 11,
"internal": 45
},
"preview_image": "/cache/screenshots/citywerkstatt-ansbach.de-160x150-d5afdb91150689e2cf.png",
"screenshot_url": "/cache/screenshots/citywerkstatt-ansbach.de-160x150-d5afdb91150689e2cf.png",
"external_scripts": [],
"browser_final_url": "https://citywerkstatt-ansbach.de/",
"meta_preview_image": "https://citywerkstatt-ansbach.de/wp-content/uploads/sites/30/2022/05/Logo-Citywerkstatt-Ansbach-quad.jpg",
"screenshot_renderer": "playwright-chromium",
"external_link_targets": [
{
"host": "ihk-nuernberg.de",
"count": 5,
"examples": [
{
"href": "https://www.ihk-nuernberg.de",
"text": "Industrie- und Handelskammer Nürnberg für Mittelfranken (IHK)"
},
{
"href": "https://ihk-nuernberg.de",
"text": "Industrie- und Handelskammer Nürnberg für Mittelfranken (IHK)"
},
{
"href": "https://www.ihk-nuernberg.de/",
"text": "Industrie- und Handelskammer Nürnberg für Mittelfranken (IHK)"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 5
},
{
"host": "ansbach.de",
"count": 4,
"examples": [
{
"href": "https://www.ansbach.de",
"text": "Stadt Ansbach"
},
{
"href": "https://www.ansbach.de/",
"text": "Stadt Ansbach"
},
{
"href": "https://www.ansbach.de/",
"text": "Stadt Ansbach"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 4
},
{
"host": "nuernberg.de",
"count": 1,
"examples": [
{
"href": "https://nuernberg.de",
"text": "Stadt Nürnberg"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 1
},
{
"host": "nuernberger-city-werkstatt.de",
"count": 1,
"examples": [
{
"href": "https://www.nuernberger-city-werkstatt.de",
"text": "„Nürnberger Citywerkstatt“"
}
],
"nofollow": 0,
"strength": "strong",
"follow_count": 1
}
]
},
"browser_analysis": {
"cookies": {
"items": [],
"total": 0,
"third_party": 0
},
"storage": {
"total": 1,
"local_storage_keys": [],
"tracking_key_hints": [],
"local_storage_total": 0,
"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": "browser_consent_accept_only",
"title": "Consent-Banner wirkt im Browser wie Akzeptieren-only",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "browser_consent_settings_missing",
"title": "Keine sichtbaren Cookie-Einstellungen im Banner",
"public": true,
"category": "privacy",
"severity": "info"
},
{
"id": "gpc_privacy_domains_present",
"count": 2,
"title": "Datenschutzrelevante Kontakte 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": "third_party_page_url_parameter",
"count": 1,
"title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
"public": true,
"category": "privacy",
"severity": "warning"
},
{
"id": "browser_keystroke_listener_signals",
"count": 12,
"title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
"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": 2,
"title": "Beacon-/Keepalive-Telemetrie erkannt",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"renderer": "playwright-chromium",
"final_url": "https://citywerkstatt-ansbach.de/",
"consent_ui": {
"accept_controls": [
{
"tag": "a",
"top": 897,
"area": 4800,
"left": 894,
"text": "OK",
"color": "rgb(255, 255, 255)",
"width": 100,
"height": 48,
"background": "rgb(130, 165, 20)",
"font_weight": "600"
}
],
"accept_max_area": 4800,
"reject_controls": [],
"reject_max_area": 0,
"settings_controls": [],
"first_layer_summary": "Akzeptieren 1 / Ablehnen 0 / Einstellungen 0",
"cookie_context_found": true,
"reject_less_prominent": false,
"visible_control_count": 9,
"reject_prominence_ratio": 0
},
"gpc_signal": {
"error": "",
"enabled": true,
"storage": {
"total": 1,
"tracking_key_hints": [],
"local_storage_total": 0,
"session_storage_total": 1
},
"cookie_count": 0,
"request_count": 35,
"sec_gpc_header": true,
"navigator_value": true,
"contacted_domains": [
{
"host": "citywerkstatt-ansbach.de",
"count": 33,
"category": "other",
"provider": "citywerkstatt-ansbach.de",
"third_party": false,
"category_label": "Sonstige",
"resource_types": {
"font": 4,
"image": 7,
"script": 16,
"document": 1,
"stylesheet": 5
}
},
{
"host": "cdn.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"script": 1
}
},
{
"host": "ihknuernberg.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"ping": 1
}
}
],
"contacted_domain_count": 3,
"privacy_relevant_domains": [
{
"host": "cdn.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"script": 1
}
},
{
"host": "ihknuernberg.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"ping": 1
}
}
],
"third_party_cookie_count": 0,
"third_party_domain_count": 2,
"privacy_relevant_domain_count": 2
},
"screenshot": {
"fit": "contain",
"width": 160,
"height": 150,
"source_width": 1024,
"source_height": 960,
"source_capture": "full_page",
"capture_version": "contain-v4-viewport-transparency-160x150"
},
"consent_apis": {
"cmpapi": false,
"tcfapi": false,
"onetrust": false,
"cookiebot": false,
"data_layer": false,
"cmp_detected": false,
"usercentrics": false,
"google_tag_data": false
},
"accept_signal": {
"error": "",
"enabled": true,
"storage": {
"total": 1,
"tracking_key_hints": [],
"local_storage_total": 0,
"session_storage_total": 1
},
"clicked_text": "OK",
"accept_clicked": true,
"accept_available": true,
"contacted_domains": [
{
"host": "citywerkstatt-ansbach.de",
"count": 33,
"category": "other",
"provider": "citywerkstatt-ansbach.de",
"third_party": false,
"category_label": "Sonstige",
"resource_types": {
"font": 4,
"image": 7,
"script": 16,
"document": 1,
"stylesheet": 5
}
},
{
"host": "cdn.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"script": 1
}
},
{
"host": "ihknuernberg.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"ping": 1
}
}
],
"contacted_domain_count": 3,
"new_domains_after_accept": [],
"privacy_relevant_domains": [
{
"host": "cdn.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"script": 1
}
},
{
"host": "ihknuernberg.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"ping": 1
}
}
],
"third_party_domain_count": 2,
"cookie_count_after_accept": 1,
"cookie_count_before_accept": 0,
"request_count_after_accept": 35,
"storage_count_after_accept": 1,
"request_count_before_accept": 35,
"new_cookie_count_after_accept": 1,
"privacy_relevant_domain_count": 2,
"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": 35,
"top_providers": [
{
"provider": "Matomo",
"request_count": 2
}
],
"request_samples": [
{
"host": "cdn.matomo.cloud",
"method": "GET",
"referrer": {
"host": "citywerkstatt-ansbach.de",
"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": "ihknuernberg.matomo.cloud",
"method": "POST",
"referrer": {
"host": "citywerkstatt-ansbach.de",
"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": [
"action_name",
"idsite",
"rec",
"r",
"h",
"m",
"s",
"url",
"_id",
"_idn",
"send_image",
"_refts"
],
"third_party": true,
"resource_type": "ping",
"query_key_count": 24,
"url_value_param_count": 1,
"sensitive_query_key_count": 0,
"target_url_value_param_count": 1
}
],
"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": "citywerkstatt-ansbach.de",
"count": 33,
"category": "other",
"provider": "citywerkstatt-ansbach.de",
"third_party": false,
"category_label": "Sonstige",
"resource_types": {
"font": 4,
"image": 7,
"script": 16,
"document": 1,
"stylesheet": 5
}
},
{
"host": "cdn.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"script": 1
}
},
{
"host": "ihknuernberg.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"ping": 1
}
}
],
"privacy_api_metrics": {
"api_calls": {
"beacon_count": 1,
"keyboard_input_listener_count": 12
},
"beacon_count": 1,
"webgl_read_count": 0,
"canvas_read_count": 0,
"audio_context_count": 0,
"canvas_export_count": 0,
"fetch_keepalive_count": 0,
"webgl_parameter_count": 0,
"mutation_observer_count": 0,
"keyboard_input_listener_count": 12
},
"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
},
"viewport_transparency": {
"samples": [
{
"tag": "nav",
"top": 162,
"href": "",
"left": 308,
"text": "Start Projekte Abgeschlossene Projekte Mitmachen Kontakt",
"width": 686,
"height": 162,
"category": "contact"
},
{
"tag": "a",
"top": 162,
"href": "https://citywerkstatt-ansbach.de/kontakt/",
"left": 863,
"text": "Kontakt",
"width": 64,
"height": 162,
"category": "contact"
},
{
"tag": "a",
"top": 923,
"href": "/datenschutz",
"left": 157,
"text": "Hinweise zum Datenschutz",
"width": 161,
"height": 18,
"category": "privacy_notice"
}
],
"available": true,
"sample_count": 3,
"claim_boundary": "Sichtbarkeits-Evidence aus dem ersten Headless-Chromium-Viewport; keine Aussage ueber Footer nach Scrollen, Loginbereiche oder rechtliche Vollstaendigkeit.",
"viewport_width": 1024,
"category_counts": {
"contact": 2,
"privacy_notice": 1
},
"contact_visible": true,
"imprint_visible": false,
"viewport_height": 960,
"cookie_consent_visible": false,
"privacy_notice_visible": true
},
"consent_journey_matrix": {
"color": "yellow",
"items": [
{
"host": "cdn.matomo.cloud",
"states": {
"gpc": 1,
"default": 1
},
"category": "analytics",
"provider": "Matomo",
"category_label": "Analytics",
"privacy_relevant": true,
"total_request_count": 2
},
{
"host": "ihknuernberg.matomo.cloud",
"states": {
"gpc": 1,
"default": 1
},
"category": "analytics",
"provider": "Matomo",
"category_label": "Analytics",
"privacy_relevant": true,
"total_request_count": 2
}
],
"score": 84,
"states": [
{
"id": "default",
"label": "Erstaufruf",
"description": "Kontakte ohne Nutzeraktion",
"domain_count": 2,
"request_count": 2,
"privacy_relevant_domain_count": 2
},
{
"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": 2,
"request_count": 2,
"privacy_relevant_domain_count": 2
}
],
"status": "prüfen",
"summary": "Consent-Journey: 0 neue Datenschutz-Domain(s) nach Ablehnen, 0 nach Akzeptieren, 2 im GPC-Aufruf.",
"gpc_privacy_relevant_domain_count": 2,
"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": 0,
"domain_count": 3,
"request_count": 35,
"storage_total": 1,
"new_cookie_count": 0,
"third_party_cookie_count": 0,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 2
},
{
"id": "reject",
"label": "Nach Ablehnen",
"status": "nicht verfügbar",
"evidence": "",
"risk_level": "niedrig",
"cookie_count": 0,
"domain_count": 0,
"request_count": 0,
"storage_total": 1,
"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": "geklickt",
"evidence": "OK",
"risk_level": "info",
"cookie_count": 1,
"domain_count": 3,
"request_count": 35,
"storage_total": 1,
"new_cookie_count": 1,
"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": 0,
"domain_count": 3,
"request_count": 35,
"storage_total": 1,
"new_cookie_count": 0,
"third_party_cookie_count": 0,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 2
}
],
"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": 3,
"fingerprinting_analysis": {
"color": "yellow",
"score": 88,
"checks": [
{
"id": "canvas",
"ok": true,
"count": 0,
"label": "Canvas-Auslese",
"detail": "0 Pixel-Lesezugriff(e), 0 Export(e)."
},
{
"id": "webgl",
"ok": true,
"count": 0,
"label": "WebGL-Merkmale",
"detail": "0 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": false,
"count": 12,
"label": "Tastatur-/Eingabe-Listener",
"detail": "12 Tastatur-/Input-Listener, 45 Interaktions-Listener, 0 MutationObserver."
}
],
"status": "prüfen",
"metrics": {
"webgl_read_count": 0,
"canvas_read_count": 0,
"audio_context_count": 0,
"canvas_export_count": 0,
"webgl_parameter_count": 0,
"mutation_observer_count": 0,
"keyboard_input_listener_count": 12
},
"summary": "1 Fingerprinting-/Session-Replay-Hinweis(e) aus dem Browserlauf.",
"findings": [
{
"id": "browser_keystroke_listener_signals",
"count": 12,
"title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
"public": true,
"category": "privacy",
"severity": "info"
}
],
"finding_count": 1,
"session_replay_domains": []
},
"privacy_relevant_domains": [
{
"host": "cdn.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"script": 1
}
},
{
"host": "ihknuernberg.matomo.cloud",
"count": 1,
"category": "analytics",
"provider": "Matomo",
"third_party": true,
"category_label": "Analytics",
"resource_types": {
"ping": 1
}
}
],
"provider_category_counts": {
"analytics": 2
},
"provider_category_labels": {
"analytics": "Analytics"
},
"third_party_domain_count": 2,
"embedded_content_analysis": {
"color": "green",
"items": [],
"score": 100,
"status": "unauffällig",
"summary": "0 externe Embed-/Widget-Dienst(e), 0 davon im ersten Browseraufruf geladen.",
"findings": [],
"map_count": 0,
"total_count": 0,
"video_count": 0,
"captcha_count": 0,
"category_counts": [],
"social_widget_count": 0,
"loaded_pre_consent_count": 0,
"request_count_by_provider": []
},
"referrer_leakage_analysis": {
"color": "yellow",
"items": [
{
"host": "ihknuernberg.matomo.cloud",
"category": "analytics",
"provider": "Matomo",
"query_keys": [
"action_name",
"idsite",
"rec",
"r",
"h",
"m",
"s",
"url"
],
"risk_reason": "Seiten-URL oder URL-Wert in Drittanbieter-Requestparametern",
"resource_type": "ping",
"category_label": "Analytics",
"referrer_query_keys": [],
"url_value_param_count": 1,
"target_url_value_param_count": 1
}
],
"score": 88,
"status": "prüfen",
"summary": "1 Drittanbieter-Domain(s) mit Referrer-/URL-Leak-Prüfbedarf, 0 sensible Query-Kontexte.",
"findings": [
{
"id": "third_party_page_url_parameter",
"count": 1,
"title": "Seiten-URL wird in Drittanbieter-Requests übertragen",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"sample_count": 2,
"full_referrer_count": 0,
"page_url_param_count": 1,
"affected_domain_count": 1,
"sensitive_query_count": 0
},
"third_party_contact_matrix": {
"color": "orange",
"items": [
{
"host": "cdn.matomo.cloud",
"region": "EU/selbst gehostet möglich",
"status": "dokumentieren",
"category": "analytics",
"provider": "Matomo",
"risk_level": "mittel",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Analytics",
"resource_types": [
{
"type": "script",
"count": 1
}
],
"transfer_label": "EU/EWR oder selbst gehostet",
"privacy_relevant": true
},
{
"host": "ihknuernberg.matomo.cloud",
"region": "EU/selbst gehostet möglich",
"status": "dokumentieren",
"category": "analytics",
"provider": "Matomo",
"risk_level": "mittel",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Analytics",
"resource_types": [
{
"type": "ping",
"count": 1
}
],
"transfer_label": "EU/EWR oder selbst gehostet",
"privacy_relevant": true
}
],
"score": 70,
"status": "auffällig",
"summary": "2 Drittanbieter-Domain(s) beim ersten Browseraufruf, davon 2 datenschutzrelevant.",
"category_counts": {
"Analytics": 2
},
"total_domain_count": 2,
"total_request_count": 2,
"privacy_relevant_count": 2,
"transfer_risk_analysis": {
"color": "green",
"items": [
{
"host": "cdn.matomo.cloud",
"region": "EU/selbst gehostet möglich",
"provider": "Matomo",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Analytics",
"transfer_label": "EU/EWR oder selbst gehostet",
"privacy_relevant": true
},
{
"host": "ihknuernberg.matomo.cloud",
"region": "EU/selbst gehostet möglich",
"provider": "Matomo",
"request_count": 1,
"transfer_risk": "mittel",
"category_label": "Analytics",
"transfer_label": "EU/EWR oder selbst gehostet",
"privacy_relevant": true
}
],
"score": 100,
"status": "unauffällig",
"summary": "2 Drittanbieter für Transfer-/Jurisdiktionsprüfung, 0 mit hohem Prüfbedarf, 0 unklar.",
"findings": [],
"unknown_count": 0,
"high_risk_count": 0,
"total_vendor_count": 2,
"third_country_count": 0
}
},
"privacy_relevant_domain_count": 2,
"tracking_pixel_beacon_analysis": {
"color": "yellow",
"items": [
{
"url": "",
"host": "citywerkstatt-ansbach.de",
"kind": "beacon_api",
"reason": "sendBeacon API 1 Aufruf(e), 0 Code-Hinweis(e); keepalive 0 Aufruf(e), 0 Code-Hinweis(e).",
"source": "javascript_api",
"category": "telemetry",
"provider": "Beacon-/Keepalive-API",
"third_party": false,
"resource_type": "beacon",
"category_label": "Telemetry"
},
{
"url": "",
"host": "ihknuernberg.matomo.cloud",
"kind": "browser_tracking_request",
"reason": "ping-Request mit 24 Query-Schlüssel(n).",
"source": "chromium_request",
"category": "analytics",
"provider": "Matomo",
"query_keys": [
"action_name",
"idsite",
"rec",
"r",
"h",
"m",
"s",
"url"
],
"third_party": true,
"resource_type": "ping",
"category_label": "Analytics"
}
],
"score": 76,
"status": "prüfen",
"summary": "0 Pixel-/Bildtracking-Hinweis(e), 2 Beacon-/Telemetry-Hinweis(e), 0 Link-Ping(s).",
"findings": [
{
"id": "beacon_api_usage",
"count": 2,
"title": "Beacon-/Keepalive-Telemetrie erkannt",
"public": true,
"category": "privacy",
"severity": "warning"
}
],
"pixel_count": 0,
"link_ping_count": 0,
"telemetry_count": 1,
"beacon_api_count": 1,
"third_party_count": 1,
"fetch_keepalive_count": 0,
"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": [],
"tracking_ids": [],
"tracking_scripts": [],
"consent_hint_found": false,
"privacy_policy_hint_found": true
},
"consent_audit": {
"color": "red",
"score": 38,
"checks": [
{
"id": "banner_visible",
"ok": true,
"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": false,
"label": "Ablehnen im sichtbaren Banner",
"detail": "Sichtbare Banner-Controls: Akzeptieren 1, Ablehnen 0, Einstellungen 0."
},
{
"id": "browser_settings_visible",
"ok": false,
"label": "Einstellungen im sichtbaren Banner",
"detail": "Sichtbare Banner-Controls: Akzeptieren 1, 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: 2 datenschutzrelevante Domain(s), 0 Drittanbieter-Cookie(s), 0 Storage-Hinweis(e)."
},
{
"id": "no_tracking_cookies_before_consent",
"ok": true,
"label": "Keine Tracking-Cookies vor Einwilligung",
"detail": "0 Tracking-Cookie(s) im Erstaufruf."
},
{
"id": "no_nonessential_cookies_before_consent",
"ok": true,
"label": "Keine nicht notwendigen Cookies vor Einwilligung",
"detail": "0 moeglicherweise nicht notwendige Cookie(s) im Erstaufruf."
},
{
"id": "third_parties_explained",
"ok": true,
"label": "Drittanbieter begrenzt und erklaerbar",
"detail": "0 datenschutzrelevante Drittanbieter-Domain(s), 2 Drittanbieter insgesamt."
},
{
"id": "storage_without_tracking_hints",
"ok": true,
"label": "Web Storage ohne Tracking-Hinweise",
"detail": "1 Storage-Key(s), 0 Tracking-Hinweis(e)."
},
{
"id": "cmp_api_detected_when_needed",
"ok": true,
"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: geklickt, neue Requests 0, neue Cookies 1, 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": [
"0 Cookie(s) beim ersten Aufruf aus HTTP-Headern und Chromium",
"0 Tracking-Script(s) im HTML",
"0 datenschutzrelevante Drittanbieter-Domain(s)",
"1 Storage-Key(s), 0 Tracking-Hinweis(e)",
"Consent-Banner-Controls: Akzeptieren 1, 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: geklickt, neue Requests 0, neue Cookies 1, 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 2, Drittanbieter-Cookies 0, Storage-Hinweise 0",
"CMP-/TCF-Signal: nein",
"Google Consent Default: nein"
],
"gpc_enabled": true,
"cmp_detected": false,
"blocking_plan": {
"items": [
{
"kind": "third_party_request",
"level": "hoch",
"source": "Matomo",
"target": "cdn.matomo.cloud",
"recipes": [
{
"tool": "Google Tag Manager"
},
{
"tool": "Cookiebot"
},
{
"tool": "Usercentrics"
},
{
"tool": "OneTrust"
},
{
"tool": "Developer-Fallback"
}
],
"category": "analytics",
"evidence": "1 Request(s) im Erstaufruf · Analytics",
"category_label": "Analytics"
},
{
"kind": "third_party_request",
"level": "hoch",
"source": "Matomo",
"target": "ihknuernberg.matomo.cloud",
"recipes": [
{
"tool": "Google Tag Manager"
},
{
"tool": "Cookiebot"
},
{
"tool": "Usercentrics"
},
{
"tool": "OneTrust"
},
{
"tool": "Developer-Fallback"
}
],
"category": "analytics",
"evidence": "1 Request(s) im Erstaufruf · Analytics",
"category_label": "Analytics"
}
],
"summary": "2 Blockier-/Consent-Maßnahme(n) abgeleitet: 2 hoch, 0 mittel.",
"available": true,
"high_count": 2,
"total_count": 2,
"type_counts": {
"third_party_request": 2
},
"medium_count": 0
},
"tcf_api_found": false,
"cookiebot_found": false,
"accept_test_enabled": true,
"browser_cookie_count": 0,
"accept_button_clicked": true,
"browser_storage_count": 1,
"reject_button_clicked": false,
"reject_less_prominent": false,
"tcf_tc_string_present": false,
"tracking_script_count": 0,
"accept_button_available": true,
"reject_button_available": false,
"reject_prominence_ratio": 0,
"pre_consent_cookie_count": 0,
"pre_consent_cookie_names": [],
"tcf_vendor_consent_count": 0,
"third_party_domain_count": 2,
"tcf_purpose_consent_count": 0,
"onetrust_active_group_count": 0,
"usercentrics_services_count": 0,
"browser_accept_control_count": 1,
"browser_cookie_context_found": true,
"browser_reject_control_count": 0,
"gpc_third_party_cookie_count": 0,
"post_accept_new_cookie_count": 1,
"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": 2,
"pre_consent_tracking_cookie_count": 0,
"pre_consent_tracking_cookie_names": [],
"privacy_relevant_third_party_count": 0,
"browser_storage_tracking_hint_count": 0,
"post_accept_third_party_cookie_count": 0,
"pre_consent_nonessential_cookie_count": 0,
"pre_consent_nonessential_cookie_names": [],
"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": "green",
"items": [],
"score": 100,
"total": 0,
"status": "unauffällig",
"summary": "0 Cookie(s) inventarisiert: 0 Tracking-/Werbe-Cookie(s), 0 Drittanbieter-Cookie(s), 0 langlebige Cookie(s), 0 sehr lange Laufzeit(en).",
"findings": [],
"categories": [],
"tracking_count": 0,
"category_labels": {
"consent": "Consent",
"payment": "Zahlung",
"unknown": "Unklar",
"security": "Sicherheit",
"analytics": "Analytics",
"necessary": "Notwendig",
"functional": "Funktional",
"advertising": "Werbung"
},
"long_lived_count": 0,
"persistent_count": 0,
"first_party_count": 0,
"pre_consent_count": 0,
"retention_classes": [],
"third_party_count": 0,
"missing_secure_count": 0,
"retention_risk_count": 0,
"retention_risk_items": [],
"very_long_lived_count": 0,
"missing_samesite_count": 0,
"persistent_unknown_count": 0,
"long_lived_tracking_count": 0
},
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
}
],
"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": false,
"dnssec": false,
"final_https": true,
"tls_version": "TLSv1.3",
"hsts_enabled": false,
"address_count": 1,
"ipv6_available": false,
"email_protection": {
"mx": true,
"spf": false,
"dmarc": false
},
"certificate_valid": true,
"certificate_issuer": "YE2",
"certificate_alt_names": [
"citywerkstatt-ansbach.de",
"www.citywerkstatt-ansbach.de"
],
"multiple_ip_addresses": false,
"certificate_expires_at": "Sep 17 00:12:54 2026 GMT",
"certificate_days_remaining": 89,
"certificate_hostname_matches": true
},
"findings": [
{
"id": "dmarc_missing",
"title": "DMARC fehlt",
"public": true,
"category": "email",
"severity": "info"
},
{
"id": "caa_missing",
"title": "CAA-Record fehlt",
"public": true,
"category": "dns",
"severity": "info"
}
],
"risk_level": "low",
"positive_signals": [
"Moderne TLS-Version aktiv: TLSv1.3."
]
},
"performance_analysis": {
"score": 82,
"signals": {
"compressed": false,
"duration_ms": 2714,
"image_count": 5,
"script_count": 16,
"cache_control": "",
"content_length": 0,
"viewport_found": true,
"stylesheet_count": 5
},
"findings": [
{
"id": "slow_response",
"title": "Langsame Serverantwort",
"public": true,
"category": "performance",
"severity": "warning"
},
{
"id": "too_many_render_blocking_assets",
"title": "Viele potenziell blockierende Assets",
"public": true,
"category": "performance",
"severity": "info"
}
],
"risk_level": "medium"
},
"accessibility_analysis": {
"color": "yellow",
"score": 76,
"status": "prüfen",
"signals": {
"h1_count": 4,
"image_count": 5,
"button_count": 2,
"heading_count": 29,
"viewport_found": true,
"html_lang_found": true,
"form_field_count": 2,
"image_missing_alt_count": 2,
"buttons_without_name_count": 2,
"form_fields_without_label_count": 0
},
"summary": "5 Bild(er), 2 Formularfeld(er), 2 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.",
"findings": [
{
"id": "image_alt_missing",
"count": 2,
"title": "Bilder ohne Alternativtext",
"public": true,
"category": "accessibility",
"severity": "info",
"evidence_items": [
"https://citywerkstatt-ansbach.de/wp-content/uploads/sites/30/2023/04/logo-ihk.png",
"https://citywerkstatt-ansbach.de/wp-content/uploads/sites/30/2023/04/ansbach-logo.jpg"
]
},
{
"id": "button_name_missing",
"count": 2,
"title": "Buttons ohne erkennbaren Namen",
"public": true,
"category": "accessibility",
"severity": "warning",
"evidence_items": [
"type=button",
"type=button"
]
}
],
"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": "2 von 5 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 2 Formularfeld(er) ohne erkennbare Beschriftung."
},
{
"id": "wcag_button_names",
"ok": false,
"wcag": "WCAG 4.1.2 Name, Role, Value",
"title": "Buttons mit Namen versehen",
"impact": "hoch",
"status": "prüfen",
"evidence": "2 von 2 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": "4 H1 und 29 Überschrift(en) im HTML-Sample."
},
{
"id": "wcag_mobile_reflow",
"ok": true,
"wcag": "WCAG 1.4.10 Reflow",
"title": "Mobile Viewport-Basis",
"impact": "niedrig",
"status": "ok",
"evidence": "Viewport-Meta-Tag gefunden."
}
],
"summary": "2 WCAG-/EAA-Prüfpunkt(e) auffällig, davon 1 mit hoher Auswirkung.",
"standard": "WCAG 2.2 orientierte Basisprüfung",
"available": true,
"issue_count": 2,
"high_impact_count": 1
}
},
"domain_history": {
"status": [
"active"
],
"summary": "RDAP liefert kein klares Registrierungsdatum.",
"age_days": null,
"findings": [],
"available": true,
"registrar": "",
"expires_at": "",
"risk_level": "unknown",
"registered_at": "",
"expires_in_days": null,
"last_changed_at": "2022-03-28T09:05:03+00:00"
},
"data_entry_analysis": {
"forms": [
{
"url": "https://citywerkstatt-ansbach.de/datenschutz",
"path": "/datenschutz",
"method": "UNBEKANNT",
"source": "crawl",
"purpose": "Formular",
"data_types": [],
"field_count": 0
},
{
"url": "https://citywerkstatt-ansbach.de/impressum",
"path": "/impressum",
"method": "UNBEKANNT",
"source": "crawl",
"purpose": "Formular",
"data_types": [],
"field_count": 0
},
{
"url": "https://citywerkstatt-ansbach.de/kontakt",
"path": "/kontakt",
"method": "UNBEKANNT",
"source": "crawl",
"purpose": "Formular",
"data_types": [],
"field_count": 0
},
{
"url": "https://citywerkstatt-ansbach.de/",
"path": "/",
"method": "UNBEKANNT",
"source": "crawl",
"purpose": "Formular",
"data_types": [],
"field_count": 0
},
{
"purpose": "Formular",
"field_count": 0,
"source": "crawl",
"path": "/datenschutz",
"url": "https://citywerkstatt-ansbach.de/datenschutz"
},
{
"purpose": "Formular",
"field_count": 0,
"source": "crawl",
"path": "/impressum",
"url": "https://citywerkstatt-ansbach.de/impressum"
},
{
"purpose": "Formular",
"field_count": 0,
"source": "crawl",
"path": "/kontakt",
"url": "https://citywerkstatt-ansbach.de/kontakt"
},
{
"purpose": "Formular",
"field_count": 0,
"source": "crawl",
"path": "/",
"url": "https://citywerkstatt-ansbach.de/"
}
],
"score": 84,
"summary": "Crawl fand 8 Formular(e) auf 4 geprüften Seite(n), u. a. /datenschutz, /impressum, /kontakt, /.",
"findings": [],
"form_count": 8,
"risk_level": "medium",
"field_count": 2,
"asks_for_data": true,
"crawl_form_pages": [
{
"url": "https://citywerkstatt-ansbach.de/datenschutz",
"path": "/datenschutz",
"category": "datenschutz",
"form_count": 2
},
{
"url": "https://citywerkstatt-ansbach.de/impressum",
"path": "/impressum",
"category": "impressum",
"form_count": 2
},
{
"url": "https://citywerkstatt-ansbach.de/kontakt",
"path": "/kontakt",
"category": "kontakt",
"form_count": 2
},
{
"url": "https://citywerkstatt-ansbach.de/",
"path": "/",
"category": "unterseite",
"form_count": 2
}
],
"payment_providers": [],
"detected_data_types": [
{
"id": "contact",
"count": 1,
"label": "Kontaktformular"
}
],
"crawl_form_page_count": 4,
"privacy_context_found": true,
"operator_context_found": true
},
"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": 2,
"label": "Tracking neben Dateneingabe",
"detail": "2 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": 2
}
],
"link_hits": [],
"finding_count": 1,
"current_url_hits": [],
"tracking_context": true,
"sensitive_get_forms": []
},
"scan_history_analysis": {
"available": false,
"summary": "Noch kein früherer gespeicherter Scan für diese Domain vorhanden.",
"total_scan_count": 1,
"previous_scan_count": 0,
"history": [
{
"scan_id": "f84e5996-f3ff-4271-8e14-7f1d0a0eb0d9",
"created_at": "2026-06-19 20:51:51.625815+02",
"score": 52,
"verdict": "auffällig",
"finding_count": 30,
"integrity_root_hash": "8fdda3128c49749d61415eff35c4755374019656c46d9da780646c09a261648b",
"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": "citywerkstatt-ansbach.de",
"rank": 1,
"score": 52,
"status": "im_mittelfeld",
"summary": "citywerkstatt-ansbach.de liegt mit 52 Punkten ungefähr im gespeicherten Vergleichsfeld.",
"available": true,
"peer_count": 8410,
"percentile": 0,
"query_mode": "php_ttl_cache_refresh",
"distribution": {
"0_39": 1291,
"40_59": 3324,
"60_79": 3778,
"80_100": 17
},
"median_score": 59,
"average_score": 53.2,
"comparison_basis": "Neuester gespeicherter SaferPage-Scan je Domain; überwiegend deutschsprachige gespeicherte Checks.",
"same_score_count": 0,
"better_than_count": 0,
"qualified_peer_count": 8089,
"zero_score_count": 321,
"top_quartile_score": 65,
"top_decile_score": 69,
"qualified_average_score": 55.3,
"qualified_median_score": 59,
"qualified_top_quartile_score": 65,
"qualified_top_decile_score": 69,
"thresholds": [
{
"id": "critical",
"label": "Kritisch",
"range": "0-39",
"met": false
},
{
"id": "basic",
"label": "Basis stabilisieren",
"range": "40-59",
"met": true
},
{
"id": "managed",
"label": "Gesteuert",
"range": "60-79",
"met": false
},
{
"id": "strong",
"label": "Stark",
"range": "80-100",
"met": false
}
],
"risk_tier": "basis",
"target_score": 60,
"aspirational_target_score": 69,
"gap_to_target": 8,
"gap_to_top_quartile": 13,
"gap_to_strong": 28,
"cache_ttl_seconds": 300
},
"audit_receipt": {
"url": "https://citywerkstatt-ansbach.de/",
"host": "citywerkstatt-ansbach.de",
"status": "verfügbar",
"bot_url": "https://saferpage.de/bot",
"summary": "Prüfbeleg für citywerkstatt-ansbach.de: kontrollierter HTTP-/Browser-Kurzcheck mit 35 Request(s), 4 Consent-Zustand/Zuständen und 7 Artefakt(en).",
"renderer": "playwright-chromium",
"artifacts": [
{
"label": "Öffentlicher Kurzreport",
"detail": "https://saferpage.de/citywerkstatt-ansbach.de",
"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/citywerkstatt-ansbach.de-160x150-d5afdb91150689e2cf.png",
"status": "verfügbar"
},
{
"label": "Cookie-Erklärung",
"detail": "1 Cookie-/Storage-Eintrag/Einträge.",
"status": "unauffällig"
},
{
"label": "Empfänger-/Anbieterinventar",
"detail": "2 Anbieterzeile(n), 2 AVV-/Rollenprüfung(en).",
"status": "prüfen"
},
{
"label": "Barrierefreiheitserklärung-Entwurf",
"detail": "2 bekannte Barrierefreiheits-Punkt(e).",
"status": "Nicht vollständig konform im automatischen Basischeck"
}
],
"available": true,
"final_url": "https://citywerkstatt-ansbach.de/",
"checked_at": "2026-06-19T18:51:51+00:00",
"share_text": "SaferPage Prüfbeleg citywerkstatt-ansbach.de: 35 Browser-Request(s), 2 Drittanbieter, 1 Cookie-/Storage-Einträge, geprüft am 2026-06-19T18:51:51.",
"user_agent": "SaferPageCrawler/0.3 (+https://saferpage.de/bot; schedules passive DACH website checks; report examples: https://saferpage.de/tests; kostenloser Report: <a href=\"https://saferpage.de/citywerkstatt-ansbach.de\">https://saferpage.de/citywerkstatt-ansbach.de</a>)",
"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": "crawler",
"coverage_items": [
{
"label": "HTTP/DNS/TLS",
"value": "HTTP 200 · DNS ok · TLS ok"
},
{
"label": "Browserlauf",
"value": "35 Request(s), 2 Drittanbieter-Domain(s), 0 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": "2 Anbieterzeile(n) im öffentlichen Nachweis."
},
{
"label": "Cookie-Auszug",
"value": "0 Cookie-Zeile(n) im öffentlichen Nachweis."
}
],
"confidence_score": 71,
"browser_final_url": "https://citywerkstatt-ansbach.de/"
},
"evidence_integrity_manifest": {
"host": "citywerkstatt-ansbach.de",
"status": "verfügbar",
"summary": "Integritätsmanifest für citywerkstatt-ansbach.de: 9/9 Nachweisbereich(e) mit SHA-256-Hash dokumentiert.",
"sections": [
{
"id": "audit_receipt",
"hash": "75ed83ddead15614f70a0b2972564a8394551906007fa231c64c9bd33aa407d3",
"count": 18,
"label": "Prüfbeleg",
"detail": "Kanonischer JSON-Hash des kompakten Prüfbelegs.",
"status": "verfügbar"
},
{
"id": "protocol",
"hash": "38b741d4993d50e6cac797881a0f721caf2222ee531cc6fcf4ab7bab21d0da4a",
"count": 15,
"label": "Scan-Protokoll",
"detail": "URL, Endziel, User-Agent, Zeitstempel, HTTP/DNS/TLS und Renderer.",
"status": "verfügbar"
},
{
"id": "checkpoints",
"hash": "a25ded5d25072611be52dc9f8f86ad9ba83bf5c4e975ef1a4ff38a7e7a401ce7",
"count": 6,
"label": "Prüfschritte",
"detail": "Kanonischer JSON-Hash der dokumentierten Prüfstationen.",
"status": "verfügbar"
},
{
"id": "consent_states",
"hash": "a286fc49400e01db233f69b5ff408208ebfd65a7d750165214653f23ca0afb62",
"count": 4,
"label": "Consent-Zustände",
"detail": "Default-, Ablehnen-, Akzeptieren- und GPC-Nachweise soweit verfügbar.",
"status": "verfügbar"
},
{
"id": "third_party_evidence",
"hash": "82b0928a1ccd4a88ff3c75264eca0dfd5a975e2a3c106fb21188f32d18c2fd32",
"count": 2,
"label": "Drittanbieter-Auszug",
"detail": "Sanitisierte Anbieter-, Kategorie-, Transfer- und Request-Zählwerte.",
"status": "verfügbar"
},
{
"id": "cookie_evidence",
"hash": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"count": 0,
"label": "Cookie-Auszug",
"detail": "Sanitisierte Cookie-Metadaten ohne Cookie-Werte.",
"status": "leer"
},
{
"id": "request_samples",
"hash": "4decd3c816ca268234cf873afe105bda09801e81c8b8b1d0637f3876d1cf91d1",
"count": 2,
"label": "Request-Samples",
"detail": "Sanitisierte Drittanbieter-Samples ohne vollständige Request-URLs.",
"status": "verfügbar"
},
{
"id": "checked_pages",
"hash": "25999e2e24286a948608812b9837606223ceb3b6a6d6838aa8b6470fcff1d0c4",
"count": 8,
"label": "Geprüfte Unterseiten",
"detail": "Priorisierte Pfade aus Sitemap, Pflichtseiten und interner Linkstruktur.",
"status": "verfügbar"
},
{
"id": "screenshot_file",
"hash": "cffa0483e467eca9fa90bf065a467644de1ead6ac61f9351ad34f9e14c4790ab",
"count": 4714,
"label": "160x150 Seitenvorschau-Datei",
"detail": "/cache/screenshots/citywerkstatt-ansbach.de-160x150-d5afdb91150689e2cf.png",
"status": "verfügbar"
}
],
"algorithm": "sha256",
"available": true,
"root_hash": "8fdda3128c49749d61415eff35c4755374019656c46d9da780646c09a261648b",
"checked_at": "2026-06-19T18:51:51+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.",
"available_hash_count": 9
},
"audit_evidence_pack": {
"status": "verfügbar",
"summary": "Nachweisprotokoll mit 35 Browser-Request(s), 0 Cookie-Nachweis(en), 2 Drittanbieter-Auszug/auszügen und 4 Consent-Zustand/Zuständen.",
"protocol": {
"host": "citywerkstatt-ansbach.de",
"dns_ok": true,
"tls_ok": true,
"bot_url": "https://saferpage.de/bot",
"renderer": "playwright-chromium",
"final_url": "https://citywerkstatt-ansbach.de/",
"input_url": "https://citywerkstatt-ansbach.de/",
"checked_at": "2026-06-19T18:51:51+00:00",
"user_agent": "SaferPageCrawler/0.3 (+https://saferpage.de/bot; schedules passive DACH website checks; report examples: https://saferpage.de/tests; kostenloser Report: <a href=\"https://saferpage.de/citywerkstatt-ansbach.de\">https://saferpage.de/citywerkstatt-ansbach.de</a>)",
"http_status": 200,
"scan_context": "crawler",
"screenshot_url": "/cache/screenshots/citywerkstatt-ansbach.de-160x150-d5afdb91150689e2cf.png",
"googlebot_status": 200,
"browser_final_url": "https://citywerkstatt-ansbach.de/",
"dns_address_count": 1
},
"checkpoints": [
{
"label": "DNS",
"detail": "1 Adresse(n) aufgelöst.",
"status": "ok"
},
{
"label": "TLS/HTTPS",
"detail": "TLSv1.3",
"status": "ok"
},
{
"label": "HTTP-Abruf",
"detail": "Status 200, Endziel https://citywerkstatt-ansbach.de/.",
"status": "ok"
},
{
"label": "Browserlauf",
"detail": "35 Request(s), 2 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": "/datenschutz",
"source": "homepage_link+sitemap",
"status": 0,
"category": "datenschutz"
},
{
"path": "/impressum",
"source": "homepage_link+sitemap",
"status": 0,
"category": "impressum"
},
{
"path": "/kontakt",
"source": "homepage_link+sitemap",
"status": 0,
"category": "kontakt"
},
{
"path": "/",
"source": "sitemap",
"status": 0,
"category": "unterseite"
},
{
"path": "/2022/03/17/startschuss-fuer-die-citywerkstatt-ansbach-auftaktveranstaltung-und-erste-werkstattrunde",
"source": "sitemap",
"status": 0,
"category": "unterseite"
},
{
"path": "/2022/05/23/offizielle-vorstellung-der-regenschirme-fuer-die-innenstadt",
"source": "sitemap",
"status": 0,
"category": "unterseite"
},
{
"path": "/2023/04/26/ansbach-schriftzug-in-betrieb-genommen",
"source": "sitemap",
"status": 0,
"category": "unterseite"
},
{
"path": "/2023/05/11/zweite-werkstattrunde",
"source": "sitemap",
"status": 0,
"category": "unterseite"
}
],
"cookie_evidence": [],
"browser_evidence": {
"gpc_enabled": true,
"request_count": 35,
"storage_total": 1,
"accept_clicked": true,
"reject_clicked": false,
"browser_cookie_count": 0,
"contacted_domain_count": 3,
"third_party_domain_count": 2,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 2
},
"storage_evidence": {
"tracking_key_hints": [],
"local_storage_total": 0,
"session_storage_total": 1
},
"third_party_evidence": [
{
"host": "cdn.matomo.cloud",
"category": "Analytics",
"provider": "Matomo",
"transfer": "EU/EWR oder selbst gehostet",
"risk_level": "mittel",
"request_count": 1,
"resource_types": [
"script"
],
"privacy_relevant": true
},
{
"host": "ihknuernberg.matomo.cloud",
"category": "Analytics",
"provider": "Matomo",
"transfer": "EU/EWR oder selbst gehostet",
"risk_level": "mittel",
"request_count": 1,
"resource_types": [
"ping"
],
"privacy_relevant": true
}
],
"external_script_count": 0,
"consent_state_evidence": [
{
"label": "Erstaufruf",
"cookie_count": 0,
"domain_count": 2,
"request_count": 2,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 2
},
{
"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": 2,
"request_count": 2,
"storage_tracking_hint_count": 0,
"privacy_relevant_domain_count": 2
}
],
"request_sample_evidence": [
{
"host": "cdn.matomo.cloud",
"query_keys": [],
"resource_type": "script",
"query_key_count": 0,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
},
{
"host": "ihknuernberg.matomo.cloud",
"query_keys": [
"action_name",
"idsite",
"rec",
"r",
"h",
"m",
"s",
"url"
],
"resource_type": "ping",
"query_key_count": 24,
"referrer_has_path": false,
"referrer_has_query": false,
"sensitive_query_key_count": 0
}
]
},
"consent_visual_salience_evidence": {
"schema": "https://saferpage.de/schemas/consent-visual-salience-evidence.v1",
"status": "accept_without_visible_reject_signal",
"available": true,
"evidence_level": "dom_viewport_signal_only",
"summary": "Der erste Headless-Chromium-Viewport liefert sichtbare Consent-Control-Signale mit Text, Position, Groesse und typografischen Hinweisen.",
"sample_status": "classified_control_samples",
"classified_sample_count": 1,
"accept_control_count": 1,
"reject_control_count": 0,
"settings_control_count": 0,
"visible_control_count": 9,
"accept_max_area": 4800,
"reject_max_area": 0,
"reject_prominence_ratio": "nicht messbar",
"samples": [
{
"kind": "accept",
"text": "OK",
"tag": "a",
"width": 100,
"height": 48,
"area": 4800,
"top": 897,
"left": 894,
"font_weight": "600"
}
],
"sample_boundary": "Samples enthalten nur klassifizierte Accept-/Reject-/Settings-Controls. Weitere sichtbare Consent-Controls bleiben als Zaehler erhalten, werden aber ohne Klassifizierung nicht als Ablehnen-, Akzeptieren- oder Einstellungsprobe behauptet.",
"claim_boundary": "Consent-Visual-Salienz ist ein DOM-/Viewport-Signal aus dem ersten Browserlauf. Sie ist keine Rechtsbewertung, kein Dark-Pattern-Endurteil und kein Nachweis fuer spaetere Consent-Zustaende, Scrollbereiche, Loginbereiche oder manuelle Betreiberkontexte."
}
}