{
    "schema": "https://saferpage.de/schemas/seo-pwa-smoke.v1",
    "ok": true,
    "generated_at": "2026-06-13T19:36:50+00:00",
    "base_url": "https://saferpage.de",
    "host": "anrufer.info",
    "summary": "Fokussierter Smoke fuer Canonical-Kurzreport, noindex-Exports, PWA-Manifest, Color-Scheme/Dark-Mode und Service-Worker-Cache-Grenzen.",
    "metrics": {
        "check_count": 11,
        "failed_count": 0,
        "export_noindex_header_count": 8,
        "export_noindex_header_total": 8,
        "canonical_report_status": 200,
        "canonical_report_noindex_header": 0,
        "static_public_canonical_count": 18,
        "static_public_canonical_total": 18,
        "structured_data_home_ok": 1,
        "structured_data_report_ok": 1,
        "structured_data_methodik_ok": 1,
        "structured_data_score_methodik_ok": 1,
        "structured_data_quality_ok": 1,
        "structured_data_operator_copy_ok": 1,
        "structured_data_ai_visibility_ok": 1,
        "structured_data_market_scope_ok": 1,
        "structured_data_market_source_review_ok": 1,
        "structured_data_experiments_ok": 1,
        "structured_data_guides_ok": 1,
        "structured_data_security_contact_ok": 1,
        "structured_data_plans_ok": 1,
        "structured_data_measurement_ok": 1,
        "operator_identity_shpi_ok": 1,
        "structured_data_home_type_count": 6,
        "structured_data_report_type_count": 6,
        "portal_security_header_count": 6,
        "portal_security_header_total": 6,
        "portal_csp_directive_count": 10,
        "portal_csp_directive_total": 10,
        "portal_csp_report_only_directive_count": 10,
        "portal_csp_report_only_directive_total": 10,
        "portal_csp_report_only_strict": 1,
        "pwa_manifest_any_icon_count": 8,
        "pwa_manifest_maskable_icon_count": 2,
        "pwa_manifest_shortcut_count": 3,
        "service_worker_static_boundary_visible": 1,
        "pwa_color_scheme_visible": 1,
        "pwa_dark_mode_css_marker_count": 6,
        "pwa_dark_mode_css_marker_total": 6,
        "pwa_typography_css_marker_count": 8,
        "pwa_typography_css_marker_total": 8
    },
    "checks": [
        {
            "id": "canonical_report_indexable",
            "label": "Kanonischer Kurzreport ist indexierbar und zeigt auf die Kurz-URL",
            "status": "passed",
            "passed": true,
            "evidence": "status=200, canonical=yes, noindex=no."
        },
        {
            "id": "index_file_redirects",
            "label": "index.html und index.php leiten auf die kanonische Startseite",
            "status": "passed",
            "passed": true,
            "evidence": "index_html=301->https://saferpage.de/, index_php=301->https://saferpage.de/."
        },
        {
            "id": "machine_exports_noindex",
            "label": "Maschinenlesbare Exporte und Share-Card-Artefakte sind noindex",
            "status": "passed",
            "passed": true,
            "evidence": "exports=8, noindex=8."
        },
        {
            "id": "static_public_pages_canonical_contract",
            "label": "Bot-, Trust-, Legal-, Methodik-, Score-Methodik-, Report-Qualitaets-, Betreiber-Sprache-, KI-Sichtbarkeit-, Marktumfeld-, Quellenreview-, Experiment-, Kontakt-, Sicherheitskontakt-, Plan-, Messmodell- und Guide-Seiten haben kanonische HTML-Ziele",
            "status": "passed",
            "passed": true,
            "evidence": "static_canonicals=18/18 [/bot=ok, /ueber-saferpage=ok, /methodik=ok, /score-methodik=ok, /qualitaet=ok, /betreiber-sprache=ok, /ki-sichtbarkeit=ok, /marktumfeld=ok, /marktumfeld/quellenreview=ok, /experimente=ok, /datenschutz=ok, /guides=ok, /guides/datenschutz-webseiten-pruefkatalog=ok, /impressum=ok, /kontakt=ok, /sicherheitskontakt=ok, /plaene=ok, /messmodell=ok]."
        },
        {
            "id": "structured_data_core_contract",
            "label": "Startseite, Kurzreport, Methodik, Score-Methodik, Report-Qualitaet, Betreiber-Sprache, KI-Sichtbarkeit, Marktumfeld, Quellenreview, Experimente, Guides, Sicherheitskontakt, Plaene und Messmodell liefern Organization/WebSite/WebPage/BreadcrumbList/FAQPage passend zum Seitentyp",
            "status": "passed",
            "passed": true,
            "evidence": "home=WebSite|SearchAction|WebApplication|Offer|Organization|PostalAddress, report=WebPage|WebSite|Report|Organization|BreadcrumbList|ListItem, methodik=ok, score_methodik=ok, qualitaet=ok, betreiber_sprache=ok, ki_sichtbarkeit=ok, marktumfeld=ok, quellenreview=ok, experimente=ok, guides=ok, security_contact=ok, plaene=ok, messmodell=ok."
        },
        {
            "id": "operator_identity_shpi_contract",
            "label": "Trust-Seiten und zentrale strukturierte Daten nennen SHPI GmbH, anrufer.info-Kontakt und Registerangaben konsistent",
            "status": "passed",
            "passed": true,
            "evidence": "impressum=shpi, ueber=hrb, security=contact, home_jsonld=shpi, report_jsonld=shpi."
        },
        {
            "id": "portal_security_headers_contract",
            "label": "Eigene SaferPage-Auslieferung setzt HSTS, nosniff, Frame-Schutz, Referrer-Policy, Permissions-Policy und CSP",
            "status": "passed",
            "passed": true,
            "evidence": "headers=6/6, csp_directives=10/10, csp_report_only=10/10, report_only_strict=yes."
        },
        {
            "id": "pwa_manifest_contract",
            "label": "PWA-Manifest ist deutsch, installierbar und korrekt ausgeliefert",
            "status": "passed",
            "passed": true,
            "evidence": "linked=yes, type=application/manifest+json, lang=de-DE, icons_any=8, icons_maskable=2, shortcuts=3."
        },
        {
            "id": "service_worker_cache_boundary",
            "label": "Service Worker cached nur statische Assets und liefert Reports/API nicht veraltet aus",
            "status": "passed",
            "passed": true,
            "evidence": "sw_type=application/javascript; charset=utf-8, sw_cache=no-cache, sw_allowed=/, boundary=yes, register=yes."
        },
        {
            "id": "pwa_color_scheme_dark_mode",
            "label": "Startseite und Stylesheet liefern Color-Scheme- und Dark-Mode-Vertrag",
            "status": "passed",
            "passed": true,
            "evidence": "home_color_scheme=yes, style_type=text/css, dark_mode_markers=6/6."
        },
        {
            "id": "pwa_privacy_friendly_typography_contract",
            "label": "Stylesheet nutzt lokale Systemschrift-Basis ohne externe Font-Abhaengigkeit",
            "status": "passed",
            "passed": true,
            "evidence": "style_type=text/css, typography_markers=8/8."
        }
    ],
    "failed_checks": [],
    "secret_policy": "Enthaelt nur öffentliche URLs, Header-Metadaten und Zählwerte. Keine Secrets, keine Besucherlogs, keine Rohpayloads."
}
