{
    "schema": "https://saferpage.de/schemas/performance-ux.v1",
    "generated_at": "2026-06-20T12:34:21+00:00",
    "domain": "gn-online.de",
    "available": true,
    "scan": {
        "id": "cfd4c9e3-c463-4835-b0f1-93a080e519e2",
        "checked_at": "2026-06-20 05:27:34.934231+02"
    },
    "summary": "gn-online.de: Performance-Score 82, Startseiten-Antwort 403 ms, 9 Drittanbieter-Domain(s), 2 Sample-Seite(n) mit Tracking-Signalen.",
    "score": 82,
    "metrics": {
        "score": 82,
        "duration_ms": 403,
        "request_count": 168,
        "third_party_domain_count": 9,
        "script_count": 8,
        "stylesheet_count": 6,
        "image_count": 84,
        "content_length": 290040,
        "compressed": false,
        "cache_control_present": true,
        "viewport_found": true,
        "sampled_page_count": 4,
        "sampled_average_ms": 516,
        "tracking_page_count": 2,
        "form_page_count": 4,
        "external_script_count": 5
    },
    "opportunities": [
        {
            "id": "response_time",
            "title": "Antwortzeit der Startseite niedrig halten",
            "status": "bereit",
            "impact": "mittel",
            "metric": "403 ms",
            "evidence": "SaferPage misst die Server-/Abrufdauer des letzten Checks.",
            "action": "Serverantwort, Caching, Datenbankzugriffe und externe Render-Blocker prüfen; nach Deployment erneut scannen.",
            "owner": "Webentwicklung/Hosting",
            "guide_url": "https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog"
        },
        {
            "id": "compression",
            "title": "Textressourcen komprimieren",
            "status": "offen",
            "impact": "mittel",
            "metric": "Kompression nicht sicher erkannt",
            "evidence": "Header-/HTML-Signale aus dem letzten Abruf: Content-Length 290040 Byte.",
            "action": "Brotli oder gzip für HTML, CSS, JS und JSON aktivieren und Antwortheader nach dem Nginx-/CDN-Deployment kontrollieren.",
            "owner": "Hosting/Webentwicklung",
            "guide_url": "https://saferpage.de/guides/security-header-setzen"
        },
        {
            "id": "cache_policy",
            "title": "Cache-Regeln nachvollziehbar setzen",
            "status": "bereit",
            "impact": "mittel",
            "metric": "no-store, no-cache",
            "evidence": "SaferPage bewertet sichtbare HTTP-Cache-Hinweise der geprüften Seite.",
            "action": "Statische Assets lang cachen, HTML bewusst kurz cachen und Cache-Policy dokumentieren, damit Performance und Aktualität steuerbar bleiben.",
            "owner": "Hosting/Webentwicklung",
            "guide_url": "https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog"
        },
        {
            "id": "viewport_mobile",
            "title": "Mobile Viewport sauber ausspielen",
            "status": "bereit",
            "impact": "niedrig",
            "metric": "Viewport vorhanden",
            "evidence": "HTML-Basischeck auf mobile Nutzbarkeit.",
            "action": "Viewport-Meta-Tag setzen, Layout auf kleinen Displays testen und Datenschutz-/Consent-Elemente ohne Überlagerung darstellen.",
            "owner": "UX/Webentwicklung",
            "guide_url": "https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog"
        },
        {
            "id": "third_party_load",
            "title": "Drittanbieterlast reduzieren",
            "status": "offen",
            "impact": "hoch",
            "metric": "9 Drittanbieter-Domain(s)",
            "evidence": "Sichtbare Anbieter: trauer.gn-online.de, content.gn-online.de, cdn.gn-online.de, consent.cookiebot.com, consentcdn.cookiebot.com, data-90725c51d9.gn-online.de, cdns.symplr.de, cdn.onesignal.com",
            "action": "Nicht notwendige externe Dienste entfernen, Fonts lokal hosten und Marketing-/Werbeskripte erst nach Einwilligung laden.",
            "owner": "Marketing/Webentwicklung/Datenschutz",
            "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden"
        },
        {
            "id": "script_budget",
            "title": "Script-Budget und Render-Blocker begrenzen",
            "status": "offen",
            "impact": "hoch",
            "metric": "8 Script(s), 5 extern",
            "evidence": "Externe Scripts: https://consent.cookiebot.com/uc.js, https://www.googletagmanager.com/gtag/js?id=G-6J7E7KRF89, https://cdn.onesignal.com/sdks/OneSignalSDK.js, https://cdns.symplr.de/gn-online.de/gn-online.js, https://cdn.gn-online.de/pub/ghost.js",
            "action": "Skripte bündeln, verzögert laden, Consent-Gates setzen und nicht notwendige Tags aus dem Initial Load entfernen.",
            "owner": "Webentwicklung/Marketing Ops",
            "guide_url": "https://saferpage.de/consent/gn-online.de"
        },
        {
            "id": "privacy_performance",
            "title": "Datenschutz und Performance gemeinsam verbessern",
            "status": "offen",
            "impact": "hoch",
            "metric": "2 Sample-Seite(n) mit Tracking-Signalen",
            "evidence": "4 Unterseite(n) wurden im letzten Crawl abgerufen; Tracking beeinflusst Datenschutzrisiko und Ladeverhalten.",
            "action": "Tracking, Anzeigen, Consent-Manager und externe Ressourcen erst nach Zweckprüfung und Einwilligung laden; danach Consent- und Performance-Recheck durchführen.",
            "owner": "Datenschutz/Marketing/Webentwicklung",
            "guide_url": "https://saferpage.de/befunde/gn-online.de"
        },
        {
            "id": "sampled_pages_fast",
            "title": "Wichtige Unterseiten schnell halten",
            "status": "bereit",
            "impact": "mittel",
            "metric": "Ø 516 ms",
            "evidence": "4 zuletzt geprüfte Unterseite(n), 4 mit Formularen.",
            "action": "Kontakt-, Datenschutz-, Impressums- und Conversion-Seiten priorisiert testen; langsame Templates und Consent-Overlays gesondert optimieren.",
            "owner": "UX/Webentwicklung",
            "guide_url": "https://saferpage.de/seiten/gn-online.de"
        }
    ],
    "diagnostics": [
        {
            "id": "requests",
            "label": "Requests",
            "value": 168,
            "note": "Browser-Sample des letzten Checks."
        },
        {
            "id": "third_party_domains",
            "label": "Drittanbieter-Domains",
            "value": 9,
            "note": "Relevanter Treiber für Datenschutz, Consent und Ladezeit."
        },
        {
            "id": "assets",
            "label": "Assets",
            "value": "8 JS / 6 CSS / 84 Bilder",
            "note": "Aus HTML- und Basis-Abrufsignalen abgeleitet."
        },
        {
            "id": "sampled_pages",
            "label": "Unterseiten-Sample",
            "value": 4,
            "note": "Durchschnitt 516 ms."
        }
    ],
    "sampled_pages": [
        {
            "url": "https://www.gn-online.de/bentheim/schulklo-ueberwachung-greift-in-privatsphaere-ein-muss-aber-sein-613707.html",
            "path": "/bentheim/schulklo-ueberwachung-greift-in-privatsphaere-ein-muss-aber-sein-613707.html",
            "status": "200",
            "duration_ms": 291,
            "tracking_script_count": 1,
            "cookie_count": 1,
            "form_count": 1,
            "privacy_policy_found": true
        },
        {
            "url": "https://www.gn-online.de/User/Account/ExternalProviderLogin",
            "path": "/User/Account/ExternalProviderLogin",
            "status": "200",
            "duration_ms": 872,
            "tracking_script_count": 0,
            "cookie_count": 1,
            "form_count": 1,
            "privacy_policy_found": false
        },
        {
            "url": "https://www.gn-online.de/nachrichten/newsletter-abonnieren.html",
            "path": "/nachrichten/newsletter-abonnieren.html",
            "status": "200",
            "duration_ms": 581,
            "tracking_script_count": 0,
            "cookie_count": 0,
            "form_count": 1,
            "privacy_policy_found": false
        },
        {
            "url": "https://www.gn-online.de/newsletter/chefredakteur",
            "path": "/newsletter/chefredakteur",
            "status": "200",
            "duration_ms": 320,
            "tracking_script_count": 1,
            "cookie_count": 1,
            "form_count": 1,
            "privacy_policy_found": true
        }
    ],
    "sources": [
        {
            "title": "Google PageSpeed Insights API",
            "url": "https://developers.google.com/speed/docs/insights/v5/get-started",
            "note": "Referenz für getrennte Lab-/Field-Performance-Daten und Ergebnisstruktur."
        },
        {
            "title": "Lighthouse Performance Audits",
            "url": "https://developer.chrome.com/docs/lighthouse/performance/performance-scoring",
            "note": "Referenz für Performance-Score- und Audit-Denke; SaferPage bildet keinen vollständigen Lighthouse-Lauf ab."
        }
    ],
    "links": {
        "performance_center": "https://saferpage.de/performance/gn-online.de",
        "json": "https://saferpage.de/performance/gn-online.de/export",
        "csv": "https://saferpage.de/performance/gn-online.de/export-csv",
        "markdown": "https://saferpage.de/performance/gn-online.de/plan-md",
        "report": "https://saferpage.de/gn-online.de",
        "findings": "https://saferpage.de/befunde/gn-online.de",
        "consent": "https://saferpage.de/consent/gn-online.de",
        "technology": "https://saferpage.de/technik/gn-online.de",
        "pages": "https://saferpage.de/seiten/gn-online.de"
    },
    "disclaimer": "Dieses Center ist ein SaferPage-Lab- und Browser-Basissignal. Es ersetzt keinen vollständigen Lighthouse-/WebPageTest-Lauf und enthält keine CrUX-Field-Daten; es priorisiert sichtbare Performance-, UX- und Datenschutz-Hebel für Betreiber."
}
