{
  "produkt": "Website-Check Scherzinger",
  "analyse_id": "e34a394f-8115-4411-8ec9-b013e8cc8976",
  "url": "https://www.luviq-alsfeld.com/",
  "erstellt": "2026-10-18T17:57:33.090258+00:00",
  "gesamtscore": 92,
  "datenabdeckung": 0.945,
  "kategorien": {
    "geo": {
      "note": "",
      "grade": "gut",
      "label": "KI-Bereitschaft (GEO)",
      "score": 85,
      "capped": false,
      "failed": 6,
      "passed": 34,
      "status": "heuristic",
      "category": "geo",
      "checks_total": 52,
      "checks_evaluated": 40
    },
    "local": {
      "note": "",
      "grade": "ausbaufähig",
      "label": "Lokale Sichtbarkeit",
      "score": 60,
      "capped": false,
      "failed": 5,
      "passed": 4,
      "status": "heuristic",
      "category": "local",
      "checks_total": 13,
      "checks_evaluated": 9
    },
    "onpage": {
      "note": "",
      "grade": "sehr gut",
      "label": "Inhalte & Onpage",
      "score": 91,
      "capped": false,
      "failed": 9,
      "passed": 33,
      "status": "heuristic",
      "category": "onpage",
      "checks_total": 44,
      "checks_evaluated": 42
    },
    "search": {
      "note": "Keine Daten.",
      "grade": "n/a",
      "label": "Google-Suchleistung",
      "score": null,
      "capped": false,
      "failed": 0,
      "passed": 0,
      "status": "unavailable",
      "category": "search",
      "checks_total": 0,
      "checks_evaluated": 0
    },
    "security": {
      "note": "",
      "grade": "sehr gut",
      "label": "Sicherheit",
      "score": 95,
      "capped": false,
      "failed": 3,
      "passed": 32,
      "status": "heuristic",
      "category": "security",
      "checks_total": 39,
      "checks_evaluated": 35
    },
    "marketing": {
      "note": "",
      "grade": "ausbaufähig",
      "label": "Marketing & Tracking",
      "score": 50,
      "capped": false,
      "failed": 2,
      "passed": 2,
      "status": "measured",
      "category": "marketing",
      "checks_total": 17,
      "checks_evaluated": 4
    },
    "technical": {
      "note": "",
      "grade": "sehr gut",
      "label": "Technisches SEO",
      "score": 99,
      "capped": false,
      "failed": 5,
      "passed": 53,
      "status": "heuristic",
      "category": "technical",
      "checks_total": 60,
      "checks_evaluated": 58
    },
    "conversion": {
      "note": "",
      "grade": "gut",
      "label": "Kundenfreundlichkeit",
      "score": 76,
      "capped": false,
      "failed": 9,
      "passed": 22,
      "status": "heuristic",
      "category": "conversion",
      "checks_total": 40,
      "checks_evaluated": 31
    },
    "performance": {
      "note": "",
      "grade": "sehr gut",
      "label": "Ladegeschwindigkeit",
      "score": 96,
      "capped": false,
      "failed": 3,
      "passed": 38,
      "status": "heuristic",
      "category": "performance",
      "checks_total": 43,
      "checks_evaluated": 41
    },
    "accessibility": {
      "note": "",
      "grade": "sehr gut",
      "label": "Barrierefreiheit",
      "score": 100,
      "capped": false,
      "failed": 0,
      "passed": 32,
      "status": "heuristic",
      "category": "accessibility",
      "checks_total": 38,
      "checks_evaluated": 32
    }
  },
  "zusammenfassung": {
    "notes": [],
    "home_ms": 384,
    "problems": 37,
    "sitemaps": [
      {
        "url": "https://www.luviq-alsfeld.com/sitemap.xml",
        "urls": 33,
        "index": false,
        "status": 200
      }
    ],
    "final_url": "https://www.luviq-alsfeld.com/",
    "redirects": [],
    "crawl_limit": 25,
    "home_status": 200,
    "links_total": 772,
    "checks_total": 338,
    "pages_failed": 0,
    "sitemap_urls": 28,
    "crawl_limited": false,
    "pages_crawled": 24,
    "robots_status": 200,
    "checks_katalog": 343,
    "links_internal": 695,
    "checks_bewertet": 297,
    "external_checked": 5,
    "blocked_by_robots": 1
  },
  "befunde": [
    {
      "code": "local.schema",
      "kategorie": "local",
      "titel": "Kein LocalBusiness-Schema gefunden",
      "bestanden": false,
      "schwere": "high",
      "datenstatus": "measured",
      "beschreibung": "Ein lokaler Geschäftstyp im Schema (z. B. LocalBusiness, Electrician …) fehlt. Dort gehören Adresse, Koordinaten und Öffnungszeiten hinein.",
      "ursache": "",
      "loesung": "LocalBusiness-JSON-LD mit address, geo, openingHoursSpecification und areaServed ergänzen.",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": 2
    },
    {
      "code": "onpage.placeholder_text",
      "kategorie": "onpage",
      "titel": "Kein Platzhalter- oder Beispieltext auf den Seiten",
      "bestanden": true,
      "schwere": "high",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.title_present",
      "kategorie": "onpage",
      "titel": "Alle Seiten haben einen Title",
      "bestanden": true,
      "schwere": "high",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.noindex_pages",
      "kategorie": "technical",
      "titel": "1 Unterseite ist auf „noindex“ gestellt",
      "bestanden": false,
      "schwere": "high",
      "datenstatus": "measured",
      "beschreibung": "Diese Seiten werden von Google nicht in den Suchergebnissen angezeigt. Das ist bei Impressum, Datenschutz oder Danke-Seiten gewollt, bei Leistungs- und Infoseiten nicht.",
      "ursache": "",
      "loesung": "Prüfen Sie jede Seite: Soll sie gefunden werden, entfernen Sie noindex im meta-robots-Tag bzw. im SEO-Plugin.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/impressum/"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/impressum/: meta robots = noindex, follow"
      ],
      "prioritaet": 1
    },
    {
      "code": "tech.robots_search_bots",
      "kategorie": "technical",
      "titel": "robots.txt lässt Googlebot und Bingbot alle eigenen Seiten zu",
      "bestanden": true,
      "schwere": "high",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.staging_references",
      "kategorie": "technical",
      "titel": "Keine Verweise auf Vorschau- oder Testadressen",
      "bestanden": true,
      "schwere": "high",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.viewport",
      "kategorie": "technical",
      "titel": "Alle Seiten haben ein Viewport-Meta-Tag",
      "bestanden": true,
      "schwere": "high",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.click_to_call",
      "kategorie": "conversion",
      "titel": "Telefon per Fingertipp wählbar (tel:-Link) nein",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "Ohne Telefonnummer gibt es auch keinen Anruf-Link.",
      "ursache": "",
      "loesung": "Telefonnummer als <a href=\"tel:+49…\"> verlinken.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 8
    },
    {
      "code": "conv.offer",
      "kategorie": "conversion",
      "titel": "Leistungen/Preise nicht erkennbar",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "Weder Menüpunkte noch Überschriften zu Leistungen oder Preisen erkannt.",
      "ursache": "",
      "loesung": "Leistungen als eigene Rubrik mit Überschrift und Link zu Details darstellen; Preisrahmen nennen.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 6
    },
    {
      "code": "conv.page_cta",
      "kategorie": "conversion",
      "titel": "19 von 20 Inhaltsseiten führen zum Kontakt",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "Auf diesen Seiten gibt es im Inhaltsbereich keinen nächsten Schritt (Kontaktlink, Telefon, E-Mail oder Formular). Wer hier ankommt, ist interessiert und findet keinen Weg zur Anfrage. Menü und Fußbereich zählen nicht.",
      "ursache": "",
      "loesung": "Am Ende jeder Unterseite einen Abschnitt mit Handlungsaufforderung (Button zu Kontakt/Angebot, Telefonnummer) aus der gemeinsamen Vorlage einbinden.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/liefergebiet/"
      ],
      "belege": [
        "/liefergebiet/"
      ],
      "prioritaet": 7
    },
    {
      "code": "conv.phone_visible",
      "kategorie": "conversion",
      "titel": "Telefonnummer nicht gefunden",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "Auf der Startseite (und Kontaktseite) wurde keine Telefonnummer erkannt. Die Seite nennt keinen lokalen Geschäftstyp und ist per Formular oder E-Mail erreichbar – für Marken- und Portfolio-Seiten ist das ein gangbarer Weg. Wer anrufen möchte, findet aber keinen direkten Draht.",
      "ursache": "",
      "loesung": "Telefonnummer gut sichtbar im Kopfbereich und im Footer platzieren.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": 4
    },
    {
      "code": "conv.trust",
      "kategorie": "conversion",
      "titel": "Vertrauenselemente erkennbar",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "Erkannt: Vertrauensbegriffe (sterne). ",
      "ursache": "",
      "loesung": "Echte Kundenstimmen, Referenzen und Bewertungsplattform (z. B. Google) sichtbar auf der Startseite zeigen.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 5
    },
    {
      "code": "geo.citable_facts",
      "kategorie": "geo",
      "titel": "Zitierfähige Fakten: 0 von 4 Arten gefunden",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "Gefunden: keine. Konkrete Zahlen, Preise und Zeiten werden von KI-Systemen bevorzugt übernommen (heuristische Textsuche).",
      "ursache": "",
      "loesung": "Konkrete Fakten ergänzen: Preise \"ab … €\", Jahre Erfahrung, Öffnungszeiten, Einzugsgebiet.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 13
    },
    {
      "code": "geo.services",
      "kategorie": "geo",
      "titel": "Leistungen nicht eindeutig erkennbar",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "Weder Service-/Offer-Schema noch eigene Leistungsseiten wurden erkannt. KI-Systeme können Ihr Angebot nicht sauber zuordnen.",
      "ursache": "",
      "loesung": "Je Leistung eine eigene Seite mit klarer Beschreibung anlegen und per Service-Schema auszeichnen.",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 9
    },
    {
      "code": "local.nap",
      "kategorie": "local",
      "titel": "Name, Adresse, Telefon auf der Website: 2 von 3",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "Gefunden: Name, Adresse. Fehlend: Telefon. Vollständige und einheitliche Kontaktdaten sind die Grundlage für lokale Treffer.",
      "ursache": "",
      "loesung": "Firmenname, Straße/PLZ/Ort und Telefonnummer auf Startseite oder Kontaktseite als Text (nicht als Bild) angeben.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [
        "36304 Alsfeld"
      ],
      "prioritaet": 3
    },
    {
      "code": "onpage.description_present",
      "kategorie": "onpage",
      "titel": "Alle Seiten haben eine Meta-Description",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.duplicate_content",
      "kategorie": "onpage",
      "titel": "Kein doppelter Inhalt zwischen den Seiten gefunden",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.img_alt",
      "kategorie": "onpage",
      "titel": "Alle Bilder haben ein alt-Attribut",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.inbound_links",
      "kategorie": "onpage",
      "titel": "Jede gecrawlte Seite ist intern verlinkt",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.template_pages",
      "kategorie": "onpage",
      "titel": "Seiten gleicher Art sind einander sehr ähnlich (bis zu 98 % gleiche Wörter)",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "Mehrere Seiten im selben Bereich (z. B. je eine pro Stadt oder Leistung) bestehen fast aus demselben Text mit ausgetauschtem Namen. Google wertet solche Serienseiten als „Doorway-Seiten“ ab und zeigt oft nur eine davon.",
      "ursache": "",
      "loesung": "Schreiben Sie je Seite eigenen Text: örtliche Besonderheiten, echte Beispiele, eigene Preise und Fragen. Ein ausgetauschter Ortsname genügt nicht.",
      "aufwand": "high",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/produkt/custom-print-hoodie/",
        "https://www.luviq-alsfeld.com/produkt/custom-print-jacke/",
        "https://www.luviq-alsfeld.com/produkt/custom-print-hoodie-1/",
        "https://www.luviq-alsfeld.com/produkt/custom-hoodie-mit-print/",
        "https://www.luviq-alsfeld.com/produkt/custom-pants/"
      ],
      "belege": [
        "/produkt/: 5 Seiten, im Schnitt 98 % gleiche Wörter",
        "/wissen/: 3 Seiten, im Schnitt 23 % gleiche Wörter"
      ],
      "prioritaet": 11
    },
    {
      "code": "onpage.thin_content",
      "kategorie": "onpage",
      "titel": "5 Seiten haben dünnen Inhalt (unter 300 Wörter)",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "Sehr kurze Seiten liefern Google wenig Anlass, sie für eine Suche zu ranken. Impressum, Datenschutz und Kontakt sind ausgenommen.",
      "ursache": "",
      "loesung": "Ergänzen Sie hilfreichen Text: Leistungen, Ablauf, Preise/Beispiele, häufige Fragen. Qualität vor Länge, Füllwörter helfen nicht.",
      "aufwand": "high",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/produkt/custom-print-hoodie/",
        "https://www.luviq-alsfeld.com/produkt/custom-print-jacke/",
        "https://www.luviq-alsfeld.com/produkt/custom-print-hoodie-1/",
        "https://www.luviq-alsfeld.com/produkt/custom-hoodie-mit-print/",
        "https://www.luviq-alsfeld.com/produkt/custom-pants/"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/produkt/custom-print-hoodie/: 244 Wörter",
        "https://www.luviq-alsfeld.com/produkt/custom-print-jacke/: 243 Wörter",
        "https://www.luviq-alsfeld.com/produkt/custom-print-hoodie-1/: 243 Wörter",
        "https://www.luviq-alsfeld.com/produkt/custom-hoodie-mit-print/: 245 Wörter",
        "https://www.luviq-alsfeld.com/produkt/custom-pants/: 242 Wörter"
      ],
      "prioritaet": 10
    },
    {
      "code": "onpage.title_duplicate",
      "kategorie": "onpage",
      "titel": "7 Seiten teilen sich einen Title mit anderen Seiten",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "Identische Titles erschweren es Google, die passende Seite zu einer Suche zu wählen; die Seiten konkurrieren miteinander.",
      "ursache": "",
      "loesung": "Geben Sie jeder Seite einen eigenen Title, der ihren konkreten Inhalt benennt.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen"
      ],
      "belege": [
        "„Motiv anfragen: sag, was du willst – Luviq Universe, Alsfeld“ auf 7 Seiten"
      ],
      "prioritaet": 12
    },
    {
      "code": "perf.mobile.lcp",
      "kategorie": "performance",
      "titel": "Largest Contentful Paint Mobil: 2.9 s",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 2.9 s. Gut ist bis 2.5 s, schlecht ab 4.0 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 15
    },
    {
      "code": "sec.mail.spf",
      "kategorie": "security",
      "titel": "Kein SPF-Eintrag für luviq-alsfeld.com",
      "bestanden": false,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "Ohne SPF-Eintrag kann jeder im Namen Ihrer Domain E-Mails verschicken, die Empfänger nicht von echten unterscheiden können; Ihre echten Mails landen eher im Spam.",
      "ursache": "",
      "loesung": "TXT-Eintrag auf der Domain setzen, z. B. v=spf1 include:<Ihr Mailanbieter> ~all (den include-Teil nennt der Anbieter). Wird keine Mail versendet: v=spf1 -all.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 14
    },
    {
      "code": "tech.canonical_conflicts",
      "kategorie": "technical",
      "titel": "Canonical-Tags sind widerspruchsfrei",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.canonical_present",
      "kategorie": "technical",
      "titel": "Alle Seiten haben ein Canonical-Tag",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.hreflang",
      "kategorie": "technical",
      "titel": "hreflang-Angaben sind korrekt",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.hreflang_targets",
      "kategorie": "technical",
      "titel": "Alle geprüften hreflang-Ziele antworten direkt",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.js_dependency",
      "kategorie": "technical",
      "titel": "Die Startseite enthält ihren Text bereits im HTML",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "high",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.nofollow_internal",
      "kategorie": "technical",
      "titel": "Keine eigene Seite und kein interner Link ist auf nofollow gestellt",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.redirect_chains",
      "kategorie": "technical",
      "titel": "Keine mehrstufigen Weiterleitungsketten",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "Jede zusätzliche Weiterleitung kostet Ladezeit und Crawl-Budget; Google folgt langen Ketten nicht zuverlässig.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.robots_assets",
      "kategorie": "technical",
      "titel": "robots.txt lässt Stylesheets und Skripte für Google zu",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap_bad_urls",
      "kategorie": "technical",
      "titel": "Alle gecrawlten Sitemap-URLs sind direkt abrufbar",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap_noindex",
      "kategorie": "technical",
      "titel": "Alle geprüften Sitemap-Seiten sind indexierbar und kanonisch",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.soft_404_pages",
      "kategorie": "technical",
      "titel": "Keine Seite meldet „nicht gefunden“ mit Status 200",
      "bestanden": true,
      "schwere": "medium",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.email_domain",
      "kategorie": "conversion",
      "titel": "E-Mail-Adresse bei einem Gratis-Anbieter",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Eine Firmenadresse bei einem Gratis-Anbieter (z. B. gmail.com) wirkt weniger seriös, und die Zustellung hängt an einem privaten Konto.",
      "ursache": "",
      "loesung": "Eine Adresse wie info@ihre-domain.de einrichten und überall verwenden.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "brehlerluisa@gmail.com"
      ],
      "prioritaet": 22
    },
    {
      "code": "conv.form_required",
      "kategorie": "conversion",
      "titel": "Pflichtfelder: 4 von 18 sichtbar gekennzeichnet",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "Pflichtfelder sind technisch gesetzt, aber für Besucher nicht gekennzeichnet. Wer erst nach dem Absenden merkt, was fehlt, bricht eher ab.",
      "ursache": "",
      "loesung": "Pflichtfelder in der Beschriftung kennzeichnen (Stern mit Erklärung \"* Pflichtfeld\").",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 32
    },
    {
      "code": "conv.price_info",
      "kategorie": "conversion",
      "titel": "Preise oder Preisrahmen nicht genannt",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "Auf den gecrawlten Seiten steht keine Preisangabe. Wer keinen Rahmen findet, fragt bei mehreren Anbietern an und nimmt oft den, der einen genannt hat.",
      "ursache": "",
      "loesung": "Mindestens Ab-Preise oder eine Preisspanne je Leistung nennen (oder erklären, wovon der Preis abhängt).",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 17
    },
    {
      "code": "geo.article_fields",
      "kategorie": "geo",
      "titel": "0 von 3 Artikeln mit Überschrift, Bild und Änderungsdatum im Schema",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Google nennt für Artikel keine Pflichtfelder, empfiehlt aber headline, image, datePublished, dateModified und author. Datum und Autor prüfen geo.article_schema und geo.article_author, hier fehlen: Gefunden: image fehlt.",
      "ursache": "",
      "loesung": "Im Article/BlogPosting-Knoten headline, ein repräsentatives image und dateModified (ISO 8601) ergänzen.",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/wissen/groesse-bei-einzelstuecken/",
        "https://www.luviq-alsfeld.com/wissen/pflege-handbemalte-kleidung/",
        "https://www.luviq-alsfeld.com/wissen/upcycling-mode-second-hand-vintage/"
      ],
      "belege": [
        "/wissen/groesse-bei-einzelstuecken/: Wie finde ich bei Einzelstücken die ric… – image fehlt",
        "/wissen/pflege-handbemalte-kleidung/: Wie pflege ich handbemalte Kleidung? – image fehlt",
        "/wissen/upcycling-mode-second-hand-vintage/: Was ist Upcycling-Mode – und was unters… – image fehlt"
      ],
      "prioritaet": 36
    },
    {
      "code": "geo.org_schema",
      "kategorie": "geo",
      "titel": "Unternehmens-Schema unvollständig",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Gefunden: name, url, logo, sameAs, address/areaServed. Es fehlt: telephone.",
      "ursache": "",
      "loesung": "Im Organization-/LocalBusiness-Schema ergänzen: telephone.",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [
        "Luviq Universe"
      ],
      "prioritaet": 16
    },
    {
      "code": "geo.person_schema",
      "kategorie": "geo",
      "titel": "0 von 1 Autoren im Schema mit Profilbezug (url oder sameAs)",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Google empfiehlt bei Autoren eine Seite, die die Person eindeutig kennzeichnet (author.url oder sameAs). Ohne sie bleibt der Name eine bloße Zeichenkette. Gefunden: weder url noch sameAs.",
      "ursache": "",
      "loesung": "Bei der Person url (z. B. Über-mich-Seite) oder sameAs (Profile wie LinkedIn, Xing) ergänzen.",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [
        "/: Luisa Brehler – weder url noch sameAs"
      ],
      "prioritaet": 37
    },
    {
      "code": "geo.question_headings",
      "kategorie": "geo",
      "titel": "0 von 12 Seiten mit Fragen als Überschrift",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "Kaum eine Seite formuliert Überschriften als Frage (\"Was kostet …?\"). Antwortmaschinen suchen nach der Frage, nicht nach dem Substantiv. Volle Punktzahl ab der Hälfte der Seiten.",
      "ursache": "",
      "loesung": "Zwischenüberschriften als echte Kundenfragen schreiben, direkt gefolgt von einer kurzen Antwort.",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 27
    },
    {
      "code": "local.maps",
      "kategorie": "local",
      "titel": "Google Maps nicht gefunden",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Weder Karte noch Maps-Link gefunden. Besucher können den Standort nicht direkt öffnen.",
      "ursache": "",
      "loesung": "Link zu Google Maps (oder Karte nach Einwilligung) auf der Kontaktseite ergänzen.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 20
    },
    {
      "code": "local.review_links",
      "kategorie": "local",
      "titel": "Link zu Bewertungsplattform nicht gefunden",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Kein Link zu Google-Bewertungen oder einer Bewertungsplattform gefunden. Verlinkte Bewertungen stärken Vertrauen und lokale Signale.",
      "ursache": "",
      "loesung": "Link zu den Google-Bewertungen bzw. zu ProvenExpert o. Ä. einbauen.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 21
    },
    {
      "code": "mkt.analytics",
      "kategorie": "marketing",
      "titel": "Keine Webanalyse im Seitencode erkennbar",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Im HTML wurde keine Besucher-Auswertung (z. B. GA4, Matomo, Plausible) gefunden. Ohne Messung ist nicht erkennbar, welche Seiten Anfragen bringen. Eine serverseitige Auswertung oder ein bewusster Verzicht aus Datenschutzgründen ist von außen nicht sichtbar – dann ist dieser Hinweis gegenstandslos.",
      "ursache": "",
      "loesung": "Eine datensparsame Webanalyse (z. B. Plausible, Matomo oder GA4 mit Einwilligung) einrichten und Anfragen als Ziel messen.",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 18
    },
    {
      "code": "onpage.anchor_text",
      "kategorie": "onpage",
      "titel": "Linktexte sind aussagekräftig",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.content_pages",
      "kategorie": "onpage",
      "titel": "Die Website hat 15 inhaltliche Seiten",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "high",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.description_duplicate",
      "kategorie": "onpage",
      "titel": "7 Seiten teilen sich eine Meta-Description",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Gleiche Beschreibungen auf mehreren Seiten wirken austauschbar im Suchergebnis.",
      "ursache": "",
      "loesung": "Formulieren Sie für jede Seite eine eigene Beschreibung.",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen"
      ],
      "belege": [],
      "prioritaet": 31
    },
    {
      "code": "onpage.description_length",
      "kategorie": "onpage",
      "titel": "7 Descriptions haben eine ungünstige Länge",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Zu lange Beschreibungen werden abgeschnitten, zu kurze verschenken Platz.",
      "ursache": "",
      "loesung": "Kürzen oder erweitern Sie die Beschreibung auf 70 bis 160 Zeichen.",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/produkte/",
        "https://www.luviq-alsfeld.com/gaestebuch/",
        "https://www.luviq-alsfeld.com/liefergebiet/",
        "https://www.luviq-alsfeld.com/impressum/",
        "https://www.luviq-alsfeld.com/wissen/groesse-bei-einzelstuecken/",
        "https://www.luviq-alsfeld.com/wissen/pflege-handbemalte-kleidung/",
        "https://www.luviq-alsfeld.com/wissen/upcycling-mode-second-hand-vintage/"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/produkte/: 165 Zeichen",
        "https://www.luviq-alsfeld.com/gaestebuch/: 161 Zeichen",
        "https://www.luviq-alsfeld.com/liefergebiet/: 161 Zeichen",
        "https://www.luviq-alsfeld.com/impressum/: 161 Zeichen",
        "https://www.luviq-alsfeld.com/wissen/groesse-bei-einzelstuecken/: 162 Zeichen",
        "https://www.luviq-alsfeld.com/wissen/pflege-handbemalte-kleidung/: 161 Zeichen",
        "https://www.luviq-alsfeld.com/wissen/upcycling-mode-second-hand-vintage/: 164 Zeichen"
      ],
      "prioritaet": 30
    },
    {
      "code": "onpage.h1",
      "kategorie": "onpage",
      "titel": "Jede Seite hat genau eine H1-Überschrift",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.heading_hierarchy",
      "kategorie": "onpage",
      "titel": "Die Überschriften-Hierarchie ist durchgängig",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.inbound_min",
      "kategorie": "onpage",
      "titel": "6 Unterseiten werden von weniger als zwei Seiten verlinkt",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Seiten mit nur einem internen Link erhalten wenig Gewicht und werden von Google seltener besucht. (Gezählt wurden nur die gecrawlten Seiten.)",
      "ursache": "",
      "loesung": "Verlinken Sie diese Seiten zusätzlich aus passenden Texten, Übersichtsseiten oder dem Fußbereich.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier: 1 Link(s)",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol: 1 Link(s)",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze: 1 Link(s)",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel: 1 Link(s)",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt: 1 Link(s)",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen: 1 Link(s)"
      ],
      "prioritaet": 25
    },
    {
      "code": "onpage.keyword_density",
      "kategorie": "onpage",
      "titel": "Kein Wort ist im Text überstrapaziert",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.knowledge_content",
      "kategorie": "onpage",
      "titel": "Es gibt Wissensinhalte (3 Ratgeber-/Blogseiten)",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "high",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/wissen/groesse-bei-einzelstuecken/",
        "https://www.luviq-alsfeld.com/wissen/pflege-handbemalte-kleidung/",
        "https://www.luviq-alsfeld.com/wissen/upcycling-mode-second-hand-vintage/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.open_graph",
      "kategorie": "onpage",
      "titel": "Open-Graph-Angaben der Startseite sind vollständig",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.own_text_share",
      "kategorie": "onpage",
      "titel": "Der größte Teil jeder Seite ist eigener Inhalt",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "high",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "https://www.luviq-alsfeld.com/impressum/: 39 % Eigentext"
      ],
      "prioritaet": null
    },
    {
      "code": "onpage.subheadings",
      "kategorie": "onpage",
      "titel": "Lange Texte sind durch Zwischenüberschriften gegliedert",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.title_h1_match",
      "kategorie": "onpage",
      "titel": "Title-Begriffe tauchen in H1 und Text auf",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.title_length",
      "kategorie": "onpage",
      "titel": "3 Titles zu kurz (0) oder zu lang (3)",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Zu lange Titles werden in Google abgeschnitten (ab ca. 60 Zeichen), zu kurze nutzen den Platz für Suchbegriffe nicht aus.",
      "ursache": "",
      "loesung": "Formulieren Sie den Title mit 30 bis 60 Zeichen: wichtigster Begriff vorn, Marke am Ende.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/wissen/",
        "https://www.luviq-alsfeld.com/wissen/pflege-handbemalte-kleidung/",
        "https://www.luviq-alsfeld.com/wissen/upcycling-mode-second-hand-vintage/"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/wissen/: 63 Zeichen – Wissen zu handbemalter Upcycling-Mode – Luviq Universe, Alsfeld",
        "https://www.luviq-alsfeld.com/wissen/pflege-handbemalte-kleidung/: 63 Zeichen – Handbemalte Kleidung pflegen: bei 30 °C waschen | Luviq Alsfeld",
        "https://www.luviq-alsfeld.com/wissen/upcycling-mode-second-hand-vintage/: 65 Zeichen – Was ist Upcycling-Mode? Abgrenzung zu Second Hand | Luviq Alsfeld"
      ],
      "prioritaet": 19
    },
    {
      "code": "onpage.title_pattern",
      "kategorie": "onpage",
      "titel": "Die Titles folgen nicht alle demselben Schema",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.title_stuffing",
      "kategorie": "onpage",
      "titel": "Kein Wort wird im Title gestapelt",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.topic_areas",
      "kategorie": "onpage",
      "titel": "Die Website ist in 2 Themenbereiche gegliedert",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "high",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "/produkt/ (5 Seiten)",
        "/wissen/ (3 Seiten)"
      ],
      "prioritaet": null
    },
    {
      "code": "onpage.topic_overview",
      "kategorie": "onpage",
      "titel": "1 Themenbereich hat keine auffindbare Übersichtsseite",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "Unter Adressen wie /ratgeber/artikel-1/ gibt es keine Seite /ratgeber/, die in Sitemap oder Navigation geführt wird. Besucher und Google finden die Artikel nur einzeln, nicht als zusammengehörigen Bereich.",
      "ursache": "",
      "loesung": "Legen Sie je Bereich eine Übersichtsseite an, die alle Unterseiten mit aussagekräftigem Linktext auflistet, und verlinken Sie sie in der Navigation.",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "/produkt/ fehlt"
      ],
      "prioritaet": 28
    },
    {
      "code": "perf.cache_ttl",
      "kategorie": "performance",
      "titel": "Statische Dateien werden lange zwischengespeichert",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Bilder, Skripte und Styles bleiben lange im Browser-Cache; Folgebesuche laden schnell.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.dom_size",
      "kategorie": "performance",
      "titel": "Die Seite hat wenige Elemente",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Die gerenderte Startseite besteht aus 249 Elementen (gut: bis 1.500). Ein großer Aufbau verlangsamt Darstellung und Bedienung, besonders auf älteren Handys.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.image_delivery",
      "kategorie": "performance",
      "titel": "Bilder könnten 271 KB kleiner ausgeliefert werden",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Lighthouse schätzt, dass sich 271 KB an Bilddaten sparen ließen (moderne Formate wie WebP/AVIF, Größe passend zur Darstellung, stärkere Kompression). Das verkürzt besonders mobil die Ladezeit.",
      "ursache": "",
      "loesung": "Bilder als WebP/AVIF ausliefern, in der dargestellten Größe (srcset) bereitstellen und komprimieren.",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "section#start > figure.lv-pano > picture > img",
        "ol.lv-schritte > li.lv-schritt > figure > img"
      ],
      "prioritaet": 26
    },
    {
      "code": "perf.savings",
      "kategorie": "performance",
      "titel": "Keine großen Ladezeit-Einsparungen offen",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Lighthouse findet keine Einzelmaßnahme mit nennenswertem Zeitgewinn.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.mail.dmarc_policy",
      "kategorie": "security",
      "titel": "DMARC beobachtet nur (p=none)",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "p=none meldet nur, filtert aber nichts – gefälschte Mails werden zugestellt.",
      "ursache": "",
      "loesung": "Nach einigen Wochen ohne Fehlalarm in den Berichten auf p=quarantine, später p=reject stellen.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "v=DMARC1; p=none;"
      ],
      "prioritaet": 23
    },
    {
      "code": "sec.mail.mx",
      "kategorie": "security",
      "titel": "Für luviq-alsfeld.com ist kein Mailserver (MX) eingetragen",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Mails an Adressen dieser Domain kommen nirgends an. Falls die Domain keine E-Mails nutzt, ist das in Ordnung.",
      "ursache": "",
      "loesung": "Beim E-Mail-Anbieter bzw. DNS-Verwalter einen MX-Eintrag setzen.",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": 24
    },
    {
      "code": "tech.canonical_absolute",
      "kategorie": "technical",
      "titel": "Canonical-Tags sind absolute URLs",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.charset",
      "kategorie": "technical",
      "titel": "Der Zeichensatz ist deklariert",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.favicon",
      "kategorie": "technical",
      "titel": "Favicon und Handy-Symbol sind im HTML eingetragen",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.hreflang_lang_match",
      "kategorie": "technical",
      "titel": "Seitensprache (lang) und hreflang stimmen überein",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.html_lang",
      "kategorie": "technical",
      "titel": "Alle Seiten geben ihre Sprache an (html lang)",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.html_valid",
      "kategorie": "technical",
      "titel": "Der HTML-Aufbau der Seiten ist sauber",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.internal_link_redirects",
      "kategorie": "technical",
      "titel": "Interne Links führen direkt zur Zielseite",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.link_variants",
      "kategorie": "technical",
      "titel": "Jede Seite wird immer unter derselben Adresse verlinkt",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.not_found_page",
      "kategorie": "technical",
      "titel": "Die 404-Seite ist gestaltet und führt weiter",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.orphans",
      "kategorie": "technical",
      "titel": "11 Sitemap-Seiten ohne internen Link (Verdacht)",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "heuristic",
      "beschreibung": "Seiten, die in der Sitemap stehen, aber von keiner geprüften Seite verlinkt werden, bekommen wenig Gewicht und werden von Besuchern kaum gefunden.",
      "ursache": "",
      "loesung": "Verlinken Sie diese Seiten aus passenden Inhalten oder der Navigation, oder entfernen Sie sie aus der Sitemap.",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/IMG_4376_fupstq",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_221823_rh0ykx",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_222549_kmlpwf",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_222730_jjwtm5",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_222908_zundp7",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/augen-mit-fluegeln-720.5e21b63449db.webp",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/dornenaugen-hoodie-720.5933a97c0d27.webp",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/drache-720.9603476fa951.webp",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/eclipse-crew-720.40a93147df06.webp",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/hero-panorama-1600.6886a68e5417.webp",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/spinnennetz-jeans-hoch-720.3b84dc09ed43.webp"
      ],
      "belege": [
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/IMG_4376_fupstq",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_221823_rh0ykx",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_222549_kmlpwf",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_222730_jjwtm5",
        "https://res.cloudinary.com/dpuluomxr/image/upload/v1/media/produkte/Photoroom_20260504_222908_zundp7",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/augen-mit-fluegeln-720.5e21b63449db.webp",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/dornenaugen-hoodie-720.5933a97c0d27.webp",
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/drache-720.9603476fa951.webp"
      ],
      "prioritaet": 33
    },
    {
      "code": "tech.parameter_urls",
      "kategorie": "technical",
      "titel": "6 Seiten sind mit Parametern indexierbar",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Adressen mit Filter-, Sortier- oder Sitzungsparametern (?farbe=rot) erzeugen aus einer Seite viele nahezu gleiche Varianten, die miteinander konkurrieren.",
      "ursache": "",
      "loesung": "Setzen Sie bei Parameter-Varianten ein Canonical auf die saubere Adresse oder noindex.",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier: Parameter richtung",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol: Parameter richtung",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze: Parameter richtung",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel: Parameter richtung",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt: Parameter richtung",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen: Parameter richtung"
      ],
      "prioritaet": 35
    },
    {
      "code": "tech.redirect_temporary",
      "kategorie": "technical",
      "titel": "Interne Weiterleitungen sind dauerhaft (301/308)",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.robots_sitemap_ref",
      "kategorie": "technical",
      "titel": "robots.txt verweist auf die Sitemap",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [
        "Sitemap: https://www.luviq-alsfeld.com/sitemap.xml"
      ],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap_coverage",
      "kategorie": "technical",
      "titel": "6 gecrawlte Seiten fehlen in der Sitemap",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Seiten, die intern verlinkt sind, aber nicht in der Sitemap stehen, werden von Google oft später entdeckt.",
      "ursache": "",
      "loesung": "Nehmen Sie diese Seiten in die Sitemap auf bzw. lassen Sie die Sitemap automatisch aus dem CMS erzeugen.",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=tier",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=symbol",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=pflanze",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=himmel",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=abstrakt",
        "https://www.luviq-alsfeld.com/motiv-anfragen/?richtung=offen"
      ],
      "prioritaet": 29
    },
    {
      "code": "tech.sitemap_size",
      "kategorie": "technical",
      "titel": "Keine Sitemap-Datei ist überfüllt (unter 50.000 URLs)",
      "bestanden": true,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.url_structure",
      "kategorie": "technical",
      "titel": "1 URL ist unsauber aufgebaut",
      "bestanden": false,
      "schwere": "low",
      "datenstatus": "measured",
      "beschreibung": "Kurze, kleingeschriebene URLs mit Bindestrichen sind für Nutzer und Suchmaschinen besser lesbar. Session-IDs und viele Parameter erzeugen doppelte Seiten.",
      "ursache": "",
      "loesung": "Nutzen Sie sprechende, kurze Adressen in Kleinbuchstaben mit Bindestrichen. Bestehende URLs nur mit 301-Weiterleitung ändern.",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/ueber_uns/"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/ueber_uns/: Unterstriche"
      ],
      "prioritaet": 34
    },
    {
      "code": "a11y.accessible_names_aria",
      "kategorie": "accessibility",
      "titel": "Bedienelemente mit ARIA-Rolle haben Namen",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Lighthouse hat dies nicht ausgewertet (nicht anwendbar, nicht geliefert oder ältere Messung).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.alt_quality",
      "kategorie": "accessibility",
      "titel": "Alt-Texte beschreiben die Bilder",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Keine Alt-Texte, die nur aus Dateinamen oder Platzhalterwörtern bestehen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.aria_hidden_focus",
      "kategorie": "accessibility",
      "titel": "Versteckte Bereiche enthalten nichts Bedienbares",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "aria-hidden-Bereiche enthalten keine fokussierbaren Elemente.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.aria_required_parts",
      "kategorie": "accessibility",
      "titel": "ARIA-Rollen haben ihre Pflichtteile",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Lighthouse hat dies nicht ausgewertet (nicht anwendbar, nicht geliefert oder ältere Messung).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.aria_valid",
      "kategorie": "accessibility",
      "titel": "ARIA-Angaben sind in sich stimmig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Alle ARIA-Verweise und -Rollen sind stimmig.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.autocomplete",
      "kategorie": "accessibility",
      "titel": "Persönliche Felder tragen autocomplete",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Alle erkannten persönlichen Felder haben autocomplete.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.autoplay",
      "kategorie": "accessibility",
      "titel": "Kein automatisch startendes Video mit Ton",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Kein Autoplay-Video mit Ton gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.button_names",
      "kategorie": "accessibility",
      "titel": "Buttons haben einen Namen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Alle geprüften Buttons haben Text oder ARIA-Namen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.color_contrast",
      "kategorie": "accessibility",
      "titel": "Texte haben ausreichenden Farbkontrast",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Lighthouse (axe-core) findet auf der Startseite keine Texte mit zu geringem Kontrast.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.dup_ids",
      "kategorie": "accessibility",
      "titel": "IDs sind eindeutig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine doppelten IDs gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.empty_headings",
      "kategorie": "accessibility",
      "titel": "Keine leeren Überschriften",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine leere Überschrift gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.fake_controls",
      "kategorie": "accessibility",
      "titel": "Bedienelemente sind echte Buttons und Links",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Keine Schein-Buttons (div/span mit onclick) gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.focus_visible",
      "kategorie": "accessibility",
      "titel": "Keine entfernte Fokus-Umrandung erkannt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Im Inline-CSS wurde keine entfernte Fokus-Umrandung erkannt (externe CSS-Dateien nicht geprüft).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.form_labels",
      "kategorie": "accessibility",
      "titel": "Formularfelder sind beschriftet",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Alle geprüften Eingabefelder haben ein Label oder einen ARIA-Namen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.headings",
      "kategorie": "accessibility",
      "titel": "Überschriftenstruktur ist durchgängig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Jede geprüfte Seite hat eine H1 und keine übersprungenen Ebenen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.iframe_title",
      "kategorie": "accessibility",
      "titel": "Eingebettete Frames haben einen Titel",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle iframes haben einen Titel.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.img_alt",
      "kategorie": "accessibility",
      "titel": "Alle Bilder haben ein Alt-Attribut",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle geprüften <img>-Tags haben ein alt-Attribut (die Qualität der Texte ist damit nicht bewertet).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.landmarks",
      "kategorie": "accessibility",
      "titel": "Hauptbereich (<main>) vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "<main> ist vorhanden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.lang",
      "kategorie": "accessibility",
      "titel": "Seitensprache ist angegeben",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Das lang-Attribut ist gesetzt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.lang_valid",
      "kategorie": "accessibility",
      "titel": "Sprachcode ist gültig aufgebaut",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle lang-Angaben sind gültig aufgebaut.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.lighthouse.score",
      "kategorie": "accessibility",
      "titel": "Lighthouse-Barrierefreiheit: 100/100",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Google Lighthouse (axe-core) bewertet die Startseite mobil mit 100 von 100 Punkten. Darin enthalten ist u. a. die Prüfung der Farbkontraste (Audit „color-contrast“), die wir nicht selbst nachrechnen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.link_distinguishable",
      "kategorie": "accessibility",
      "titel": "Links im Fließtext sind nicht nur an der Farbe erkennbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Links im Fließtext unterscheiden sich auch ohne Farbe (z. B. Unterstreichung).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.link_identical",
      "kategorie": "accessibility",
      "titel": "Gleiche Linktexte führen zum selben Ziel",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Keine mehrfach verwendeten Linktexte mit verschiedenen Zielen (ab drei Zielen gezählt).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.link_names",
      "kategorie": "accessibility",
      "titel": "Links haben einen Namen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Alle geprüften Links haben einen Namen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.lists",
      "kategorie": "accessibility",
      "titel": "Listen sind korrekt aufgebaut",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Listen bestehen aus <ul>/<ol> mit direkten <li>-Kindern.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.main_single",
      "kategorie": "accessibility",
      "titel": "Jede Seite hat höchstens einen Hauptbereich",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine Seite hat mehrere Hauptbereiche.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.manual_note",
      "kategorie": "accessibility",
      "titel": "Hinweis: Automatische Prüfung ersetzt keine manuelle WCAG-Prüfung",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Automatisierte Prüfungen ersetzen keine vollständige manuelle WCAG-Prüfung.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.meta_refresh",
      "kategorie": "accessibility",
      "titel": "Keine automatische Neuladung",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Kein verzögerter Meta-Refresh gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.nav_landmark",
      "kategorie": "accessibility",
      "titel": "Navigation als <nav> ausgezeichnet",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "<nav> ist vorhanden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.object_alt",
      "kategorie": "accessibility",
      "titel": "Eingebettete Objekte haben einen Ersatztext",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Nicht anwendbar: auf den abgerufenen Seiten gibt es nichts, was diese Prüfung betrifft.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.skip_link",
      "kategorie": "accessibility",
      "titel": "Sprunglink „Zum Inhalt“ vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Ein Sprunglink am Seitenanfang erlaubt Tastatur-Nutzern, das Menü zu überspringen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.tabindex",
      "kategorie": "accessibility",
      "titel": "Kein positiver tabindex",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Kein positiver tabindex vorhanden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.table_headers",
      "kategorie": "accessibility",
      "titel": "Tabellen haben Kopfzellen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Keine Tabelle ohne Kopfzellen gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.target_size",
      "kategorie": "accessibility",
      "titel": "Tippflächen sind groß genug",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Bedienelemente haben ausreichend große Tippflächen (mindestens 24 × 24 Pixel).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.th_data_cells",
      "kategorie": "accessibility",
      "titel": "Tabellenköpfe passen zu ihren Datenzellen",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Nicht anwendbar: auf den abgerufenen Seiten gibt es nichts, was diese Prüfung betrifft.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.title",
      "kategorie": "accessibility",
      "titel": "Seitentitel vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle Seiten haben einen Titel.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.video_captions",
      "kategorie": "accessibility",
      "titel": "Videos mit Ton haben Untertitel",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Nicht anwendbar: auf den abgerufenen Seiten gibt es nichts, was diese Prüfung betrifft.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "a11y.zoom",
      "kategorie": "accessibility",
      "titel": "Zoomen ist erlaubt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Der Viewport erlaubt Zoomen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.accessibility_statement",
      "kategorie": "conversion",
      "titel": "Erklärung zur Barrierefreiheit nicht einschlägig (kein Onlineshop erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Das Barrierefreiheitsstärkungsgesetz (BFSG) betrifft vor allem Onlineshops und Dienste für Verbraucher; Kleinstunternehmen sind ausgenommen. Bei dieser Website wurde kein Shop erkannt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.contact_form",
      "kategorie": "conversion",
      "titel": "Kontaktformular vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Ein Formular mit E-Mail-/Nachrichtenfeld wurde gefunden (nicht abgesendet).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.contact_in_nav",
      "kategorie": "conversion",
      "titel": "Kontakt in der Navigation ja",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Im Kopfbereich gibt es einen Kontakt-/Anfrage-Link.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "Motiv anfragen",
        "Motiv anfragen"
      ],
      "prioritaet": null
    },
    {
      "code": "conv.cookies_before_consent",
      "kategorie": "conversion",
      "titel": "Erste Antwort setzt 1 Cookie(s), davon 0 Tracking-Cookie(s)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Beim ersten Abruf der Startseite wird kein Tracking-Cookie gesetzt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [
        "csrftoken"
      ],
      "prioritaet": null
    },
    {
      "code": "conv.copyright_year",
      "kategorie": "conversion",
      "titel": "Urheberrechtsangabe nennt 2026",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Das Jahr im Fußbereich ist aktuell.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.early_cta",
      "kategorie": "conversion",
      "titel": "Handlungsaufforderung früh sichtbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Im oberen Viertel der Seite gibt es einen Button/Link mit klarer Aufforderung (heuristisch aus dem Quelltext).",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [
        "Motiv anfragen",
        "Motiv anfragen"
      ],
      "prioritaet": null
    },
    {
      "code": "conv.email",
      "kategorie": "conversion",
      "titel": "E-Mail-Adresse vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "mailto:-Link vorhanden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "brehlerluisa@gmail.com",
        "brehlerluisa@gmail.com"
      ],
      "prioritaet": null
    },
    {
      "code": "conv.embeds_consent",
      "kategorie": "conversion",
      "titel": "1 von 1 Einbettungen warten auf einen Klick",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Videos und Karten laden erst nach einer Handlung des Besuchers.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.form_inputs",
      "kategorie": "conversion",
      "titel": "Formularfelder: 5 von 5 Angaben passend",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "E-Mail-, Telefon- und Namensfelder haben den passenden Typ und autocomplete.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.form_length",
      "kategorie": "conversion",
      "titel": "Formularlänge: bis zu 4 Pflichtfelder",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Zahl der Pflichtfelder ist überschaubar.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.form_privacy",
      "kategorie": "conversion",
      "titel": "Datenschutzhinweis an 2 von 2 Formularen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Am Formular steht ein Hinweis auf Datenschutz bzw. Einwilligung.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.form_spam",
      "kategorie": "conversion",
      "titel": "Spamschutz an 2 von 2 Formularen erkennbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Honigtopf-Feld oder Captcha erkannt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.google_fonts",
      "kategorie": "conversion",
      "titel": "Google-Schriften werden nicht von fremden Servern geladen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Es werden keine Schriften von fonts.googleapis.com oder fonts.gstatic.com geladen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.imprint",
      "kategorie": "conversion",
      "titel": "Impressum-Link vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Impressum ist verlinkt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [
        "/impressum/"
      ],
      "prioritaet": null
    },
    {
      "code": "conv.imprint_content",
      "kategorie": "conversion",
      "titel": "Impressum nennt 5 von 5 Grundangaben",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Name, Anschrift, E-Mail und ein zweiter Kontaktweg sind im Impressum zu finden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/impressum/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.imprint_register",
      "kategorie": "conversion",
      "titel": "Registerangaben nicht einschlägig (keine eingetragene Rechtsform erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Einzelunternehmen haben kein Registergericht – hier gibt es nichts zu prüfen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.imprint_sitewide",
      "kategorie": "conversion",
      "titel": "Impressum ist auf 24 von 24 Seiten verlinkt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Der Impressum-Link steht auf allen gecrawlten Seiten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.legal_links_footer",
      "kategorie": "conversion",
      "titel": "Impressum und Datenschutz im Fußbereich verlinkt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Impressum und Datenschutzerklärung stehen im Fußbereich, wo Besucher sie erwarten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.legal_outdated",
      "kategorie": "conversion",
      "titel": "Keine überholten Rechtshinweise gefunden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Weder alte Gesetzesverweise (TMG/RStV) noch der entfallene OS-Plattform-Hinweis wurden gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.logo_home",
      "kategorie": "conversion",
      "titel": "Logo-Link nicht prüfbar (kein Logo als Link erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.messenger",
      "kategorie": "conversion",
      "titel": "WhatsApp/Messenger-Kontakt nicht vorhanden",
      "bestanden": false,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Ein Chat-Kanal senkt die Hemmschwelle zur Kontaktaufnahme.",
      "ursache": "",
      "loesung": "Optional: WhatsApp-Link (wa.me/…) anbieten – nur, wenn Sie Nachrichten zeitnah beantworten.",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.navigation",
      "kategorie": "conversion",
      "titel": "Navigation vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Ein Navigationsbereich mit mindestens drei Links wurde gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.price_vat",
      "kategorie": "conversion",
      "titel": "Steuerhinweis zu Preisen nicht prüfbar (keine Euro-Preise gefunden)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.privacy",
      "kategorie": "conversion",
      "titel": "Datenschutzerklärung-Link vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Datenschutzerklärung ist verlinkt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [
        "/datenschutz/"
      ],
      "prioritaet": null
    },
    {
      "code": "conv.privacy_content",
      "kategorie": "conversion",
      "titel": "Datenschutzerklärung: 6 von 6 Pflichtangaben gefunden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Verantwortlicher, Rechtsgrundlage, Speicherdauer, Betroffenenrechte, Beschwerderecht und Hosting werden genannt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/datenschutz/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.privacy_sitewide",
      "kategorie": "conversion",
      "titel": "Datenschutz ist auf 24 von 24 Seiten verlinkt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Der Datenschutz-Link steht auf allen gecrawlten Seiten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.shop_agb",
      "kategorie": "conversion",
      "titel": "Allgemeine Geschäftsbedingungen (AGB) nicht einschlägig (kein Onlineshop erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Es wurde kein Warenkorb oder Shop-System erkannt, daher wird die Verlinkung nicht gefordert.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.shop_widerruf",
      "kategorie": "conversion",
      "titel": "Widerrufsbelehrung nicht einschlägig (kein Onlineshop erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Es wurde kein Warenkorb oder Shop-System erkannt, daher wird die Verlinkung nicht gefordert.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.slow_page",
      "kategorie": "conversion",
      "titel": "Mobile Ladeleistung 95/100",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die mobile Ladeleistung steht Anfragen nicht im Weg.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.tel_format",
      "kategorie": "conversion",
      "titel": "Telefon-Links wählen die angezeigte Nummer",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Es gibt keinen auswertbaren tel:-Link (siehe conv.click_to_call).",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.tel_international",
      "kategorie": "conversion",
      "titel": "Telefonlinks mit Ländervorwahl nicht prüfbar",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Kein tel:-Link gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "conv.tel_sitewide",
      "kategorie": "conversion",
      "titel": "Telefon-Link auf jeder Seite nicht prüfbar",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Es gibt keinen tel:-Link bzw. nur eine gecrawlte Seite (siehe conv.click_to_call).",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.ai_search_bots",
      "kategorie": "geo",
      "titel": "KI-Suchbots dürfen die Website lesen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "OAI-SearchBot, PerplexityBot, Claude-SearchBot und ChatGPT-User sind nicht gesperrt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.ai_training_bots",
      "kategorie": "geo",
      "titel": "KI-Trainings-Crawler: nicht gesperrt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Training-Bots (GPTBot, CCBot, Google-Extended …) zu sperren ist eine Geschmacksfrage und beeinflusst die Sichtbarkeit in Antworten kaum. Nur zur Information.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.answer_first",
      "kategorie": "geo",
      "titel": "Einstiegsabsatz beantwortet Was/Wo",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Der erste Absatz nach der H1 ist knapp und nennt Leistung bzw. Ort. Heuristische Einschätzung.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "Ich bemale in Alsfeld Second-Hand-Teile von Hand, mit Bleiche und Pinsel, meist in 2 bis 5 Tagen. Du sagst mir, was dra…"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.answer_pages",
      "kategorie": "geo",
      "titel": "12 von 12 Seiten beginnen mit einer zitierfähigen Antwort",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Die ersten Absätze nennen eine Definition oder eine konkrete Zahl – genau das, was Antwortmaschinen übernehmen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.article_author",
      "kategorie": "geo",
      "titel": "3 von 3 Ratgebern nennen einen Autor",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Die Ratgeber nennen, wer sie geschrieben hat.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.article_date",
      "kategorie": "geo",
      "titel": "3 von 3 Ratgebern zeigen ein Datum",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Die Ratgeber nennen sichtbar ihr Datum.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.article_schema",
      "kategorie": "geo",
      "titel": "3 von 3 Ratgebern vollständig als Article ausgezeichnet",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Ratgeberseiten tragen Article-/BlogPosting-Schema mit Überschrift und Veröffentlichungsdatum.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.author_info",
      "kategorie": "geo",
      "titel": "Verantwortliche Personen erkennbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Erkannt: Person-Schema, author-Meta, Über-uns/Team-Seite.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.breadcrumb",
      "kategorie": "geo",
      "titel": "Brotkrumenpfad auf 20 von 20 Unterseiten ausgezeichnet",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "BreadcrumbList sagt Maschinen, wo eine Seite im Haus steht.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.breadcrumb_fields",
      "kategorie": "geo",
      "titel": "23 von 23 Brotkrumenpfaden mit allen Google-Feldern",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Jeder Brotkrumenpfad hat mindestens zwei Einträge mit Position, Namen und Adresse.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.event_required",
      "kategorie": "geo",
      "titel": "Veranstaltungs-Schema (Google-Pflichtangaben) nicht prüfbar (kein Event-Schema)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.faq",
      "kategorie": "geo",
      "titel": "FAQ mit Schema vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "FAQPage-Auszeichnung gefunden – gut für direkte Antworten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.faq_status",
      "kategorie": "geo",
      "titel": "FAQPage-Auszeichnung: Google zeigt die FAQ-Sonderdarstellung nicht mehr",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Laut Googles Dokumentation (Eintrag vom 08.05.2026, Seite mit Einträgen bis Oktober 2026) erscheint das FAQ-Rich-Result seit 07.05.2026 nicht mehr in der Google-Suche. Die Auszeichnung bleibt gültig und schadet nicht; sichtbare Fragen mit kurzen Antworten bleiben auch für KI-Antworten nützlich. Nur ein Hinweis, keine Wertung.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/wissen/",
        "https://www.luviq-alsfeld.com/kontakt/",
        "https://www.luviq-alsfeld.com/liefergebiet/",
        "https://www.luviq-alsfeld.com/wissen/groesse-bei-einzelstuecken/",
        "https://www.luviq-alsfeld.com/wissen/pflege-handbemalte-kleidung/"
      ],
      "belege": [
        "/wissen/",
        "/kontakt/",
        "/liefergebiet/"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.faq_visible",
      "kategorie": "geo",
      "titel": "27 von 27 FAQ-Einträgen im Schema stehen sichtbar auf der Seite",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Jede ausgezeichnete Frage und Antwort steht auch im sichtbaren Text.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.feed",
      "kategorie": "geo",
      "titel": "Feed für neue Inhalte verlinkt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Ein RSS-/Atom-Feed ist im Kopfbereich verlinkt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.freshness",
      "kategorie": "geo",
      "titel": "Inhalte aktuell datiert",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Jüngstes erkennbares Datum: 02.10.2026.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.jobposting_required",
      "kategorie": "geo",
      "titel": "Stellenanzeigen-Schema (Google-Pflichtangaben) nicht prüfbar (kein JobPosting-Schema)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.llms_content",
      "kategorie": "geo",
      "titel": "llms.txt erfüllt 4 von 4 Aufbau-Merkmalen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die llms.txt hat Überschrift, Kurzbeschreibung, Abschnitte und verlinkte Kernseiten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.llms_txt",
      "kategorie": "geo",
      "titel": "llms.txt vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "llms.txt gefunden. Hinweis: Das ist kein Standard, eine Wirkung auf KI-Antworten ist nicht belegt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [
        "# Luviq Universe > Luviq Universe ist eine Modemarke im Aufbau aus Alsfeld (363"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.logo_valid",
      "kategorie": "geo",
      "titel": "Logo im Unternehmens-Schema ist nutzbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Das Logo ist eine absolute https-Adresse in einem unterstützten Format und war abrufbar.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [
        "https://www.luviq-alsfeld.com/static/shop1/images/logo-luviq.b64ed3a8ea9a.jpeg"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.name_consistency",
      "kategorie": "geo",
      "titel": "Firmenname einheitlich",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Name in Schema, og:site_name und Seitentitel stimmt überein.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "Schema: Luviq Universe",
        "og:site_name: Luviq Universe"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.price_visible",
      "kategorie": "geo",
      "titel": "Sichtbarkeit der Schema-Preise nicht prüfbar (kein Angebot mit Preis)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.product_offer",
      "kategorie": "geo",
      "titel": "Produkt-Angebote nicht prüfbar (kein Product-Schema)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.product_required",
      "kategorie": "geo",
      "titel": "Produkt-Schema (Google-Pflichtangaben) nicht prüfbar (kein Product-Schema)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.rating_visible",
      "kategorie": "geo",
      "titel": "Bewertungen im Schema nicht prüfbar (keine aggregateRating)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.recipe_required",
      "kategorie": "geo",
      "titel": "Rezept-Schema (Google-Pflichtangaben) nicht prüfbar (kein Recipe-Schema)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.review_snippet",
      "kategorie": "geo",
      "titel": "Bewertungs-Schema (Google-Vorgaben) nicht prüfbar (keine Review/AggregateRating)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.sameas_count",
      "kategorie": "geo",
      "titel": "sameAs verweist auf 3 Profil(e)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Mehrere Profile (Verzeichnisse, soziale Netzwerke) verknüpfen die Firma eindeutig.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [
        "https://www.instagram.com/luviq.archive/",
        "https://www.tiktok.com/@luviq.archive",
        "https://www.google.com/maps?cid=13899750731019902000"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.sameas_valid",
      "kategorie": "geo",
      "titel": "3 von 3 sameAs-Adressen sind gültige Profil-Adressen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle sameAs-Einträge sind absolute https-Adressen auf fremde Profile.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [
        "https://www.instagram.com/luviq.archive/",
        "https://www.tiktok.com/@luviq.archive"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.schema_dates",
      "kategorie": "geo",
      "titel": "Datumsangaben im Schema plausibel",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "dateModified und datePublished sind stimmig.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.schema_entities",
      "kategorie": "geo",
      "titel": "JSON-LD frei von HTML-Entities",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Texte im JSON-LD sind sauber.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.schema_ids",
      "kategorie": "geo",
      "titel": "100 % der Schema-Knoten tragen eine @id",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Knoten haben stabile Kennungen (z. B. …/#organisation) und lassen sich wiedererkennen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.schema_json_pages",
      "kategorie": "geo",
      "titel": "JSON-LD der Unterseiten lesbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle JSON-LD-Blöcke der Unterseiten lassen sich lesen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.schema_linked",
      "kategorie": "geo",
      "titel": "Schema-Knoten verweisen auf 24 von 24 Seiten aufeinander",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Knoten sind über publisher, isPartOf, about o. ä. verknüpft.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.schema_ok",
      "kategorie": "geo",
      "titel": "Strukturierte Daten (JSON-LD) vorhanden und lesbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "2 JSON-LD-Block/Blöcke, Typen: ItemList, Organization, Person, WebPage, WebSite.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "ItemList, Organization, Person, WebPage, WebSite"
      ],
      "prioritaet": null
    },
    {
      "code": "geo.schema_pages",
      "kategorie": "geo",
      "titel": "Strukturierte Daten auf 23 von 23 Unterseiten",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Jede gecrawlte Unterseite trägt strukturierte Daten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.schema_parse_types",
      "kategorie": "geo",
      "titel": "Schema-Typen und @context sind gültig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle @type-Angaben sind bekannte schema.org-Typen und jeder Block nennt schema.org als @context.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.schema_refs",
      "kategorie": "geo",
      "titel": "153 von 153 @id-Verweisen führen zu einem Knoten",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Jeder Verweis per @id zeigt auf einen definierten Knoten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.semantic_html",
      "kategorie": "geo",
      "titel": "Semantische HTML5-Struktur: 4 von 4 Grundelementen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Vorhanden: main, nav, header, footer.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.server_rendered",
      "kategorie": "geo",
      "titel": "Hauptinhalt im HTML: 547 Wörter",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Startseite enthält 547 Wörter im ausgelieferten HTML.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.snippet_brake",
      "kategorie": "geo",
      "titel": "Keine Snippet-Bremse",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Weder nosnippet noch ein zu kleines max-snippet sind gesetzt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.sources",
      "kategorie": "geo",
      "titel": "Quellenangaben in Ratgebern: 3 von 3 Artikeln",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Externe Belege (Behörden, Studien, Normen) machen Ratgeber zitierfähiger. Heuristische Stichprobe über die gecrawlten Artikel.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.structured_content",
      "kategorie": "geo",
      "titel": "10 von 10 langen Seiten sind gegliedert",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Lange Seiten enthalten Listen oder Tabellen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.video_markup_present",
      "kategorie": "geo",
      "titel": "Video-Auszeichnung nicht prüfbar (keine eingebetteten Videos)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.video_required",
      "kategorie": "geo",
      "titel": "Video-Schema (Google-Pflichtangaben) nicht prüfbar (kein VideoObject)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "geo.website_schema",
      "kategorie": "geo",
      "titel": "WebSite-Schema vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Ein WebSite-Knoten benennt den Websitenamen eindeutig.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "local.address_structured",
      "kategorie": "local",
      "titel": "Anschrift im Schema vollständig aufgeschlüsselt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Straße, PLZ, Ort und Land stehen getrennt im Schema.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "local.city_in_title",
      "kategorie": "local",
      "titel": "Ort \"Alsfeld\" in Title/H1: ja",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Title: enthält den Ort; H1: ohne Ort.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [
        "Was du willst, handbemalt: Mode aus Alsfeld – Luviq Universe",
        "Sag mir, was du willst — ich mal’s dir."
      ],
      "prioritaet": null
    },
    {
      "code": "local.gbp_not_connected",
      "kategorie": "local",
      "titel": "Google-Unternehmensprofil nicht verbunden",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Für eine vollständige Analyse muss das Google-Unternehmensprofil verbunden werden. Bewertungen, Kategorien, Fotos und Profilvollständigkeit sind ohne Verbindung nicht einsehbar.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "local.gbp_sameas",
      "kategorie": "local",
      "titel": "sameAs verweist auf das Google-Unternehmensprofil",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Das Schema verknüpft die Firma ausdrücklich mit ihrem Google-Profil.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "https://www.google.com/maps?cid=13899750731019902000"
      ],
      "prioritaet": null
    },
    {
      "code": "local.hours_schema",
      "kategorie": "local",
      "titel": "Öffnungszeiten im Schema nicht prüfbar (keine vorhanden)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Im Schema stehen keine Öffnungszeiten; ob sie fehlen, bewertet local.schema. Termin-Betriebe ohne feste Zeiten brauchen sie nicht.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "local.hours_visible",
      "kategorie": "local",
      "titel": "Öffnungszeiten sichtbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Öffnungs- bzw. Erreichbarkeitszeiten sind im Text zu finden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "Öffnungszeiten"
      ],
      "prioritaet": null
    },
    {
      "code": "local.nap_consistency",
      "kategorie": "local",
      "titel": "Kontaktdaten in Schema und Text stimmen überein",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Übereinstimmend: PLZ.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [
        "PLZ"
      ],
      "prioritaet": null
    },
    {
      "code": "local.nap_imprint",
      "kategorie": "local",
      "titel": "Abgleich mit dem Impressum nicht möglich",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Startseite und Impressum nennen nicht beide Telefon oder Straße – es gibt nichts zu vergleichen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "local.service_area",
      "kategorie": "local",
      "titel": "Einzugsgebiet im Schema nicht prüfbar (kein areaServed)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Das Fehlen von areaServed bewertet local.schema.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.consent",
      "kategorie": "marketing",
      "titel": "Einwilligungs-Prüfung nicht relevant (kein einwilligungspflichtiges Tracking erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Es wurde kein Tracking erkannt, das typischerweise eine Einwilligung braucht. Consent-Manager erkannt: keiner.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.consent_reject",
      "kategorie": "marketing",
      "titel": "Ablehnen-Knopf nicht einschlägig (kein einwilligungspflichtiges Tracking erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.consent_revoke",
      "kategorie": "marketing",
      "titel": "Widerruf der Einwilligung nicht einschlägig (kein Tracking erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.conversion_events",
      "kategorie": "marketing",
      "titel": "Conversion-Tracking nicht relevant (keine Werbe-Tags)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.gtm_container",
      "kategorie": "marketing",
      "titel": "Tag-Manager- und Messkennungen sind gültig aufgebaut",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Es wurde keine Kennung für Tag Manager, GA4 oder Google Ads im Quelltext gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.newsletter_form",
      "kategorie": "marketing",
      "titel": "Newsletter-Anmeldung nennt Einwilligung und Abmeldung",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Das Newsletter-Formular enthält eine Einwilligungs-Checkbox oder einen Hinweis auf Datenschutz bzw. Abmeldung.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.pii_in_tracking",
      "kategorie": "marketing",
      "titel": "Kontaktdaten in Ereignissen nicht prüfbar (kein Messwerkzeug erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.privacy_services",
      "kategorie": "marketing",
      "titel": "1 von 1 eingebundenen Fremd-Hosts stehen in der Datenschutzerklärung",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Alle von der Seite geladenen Fremd-Dienste kommen in der Datenschutzerklärung vor.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/datenschutz/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.sharing_buttons_privacy",
      "kategorie": "marketing",
      "titel": "Teilen-Schaltflächen laden nicht von Fremdservern vor dem Klick",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Es wurde kein Skript einer Teilen-Schaltfläche gefunden, das vor dem Klick von Fremdservern geladen wird (Einbettungen mit iframe: siehe conv.embeds_consent).",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.social",
      "kategorie": "marketing",
      "titel": "Social-Media-Profile verlinkt: 1 (+1 nur im Schema)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Verlinkt: Instagram. Nur im Schema (sameAs), nicht sichtbar verlinkt: TikTok.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [
        "https://www.instagram.com/luviq.archive/",
        "https://www.tiktok.com/@luviq.archive"
      ],
      "prioritaet": null
    },
    {
      "code": "mkt.tools_detected",
      "kategorie": "marketing",
      "titel": "0 Mess-/Marketing-Werkzeuge erkannt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Im Quelltext wurde kein Analyse- oder Werbe-Tag gefunden. Hinweis: Über einen Tag Manager geladene Werkzeuge sind von außen nicht sichtbar.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.tracking_duplicate",
      "kategorie": "marketing",
      "titel": "Doppelte Messwerkzeuge nicht prüfbar (kein Messwerkzeug erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.tracking_gated",
      "kategorie": "marketing",
      "titel": "Bindung der Tracking-Skripte an die Einwilligung nicht prüfbar (kein Cookie-Tool erkannt)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Ob ein Cookie-Tool fehlt oder nur nicht erkannt wird, bewertet mkt.consent.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.ua_legacy",
      "kategorie": "marketing",
      "titel": "Veralteter Universal-Analytics-Code nicht vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Kein veralteter UA-Code gefunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.utm_in_canonical",
      "kategorie": "marketing",
      "titel": "Canonical und Sitemap ohne Tracking-Parameter",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Canonical, og:url und Sitemap-Adressen enthalten keine Tracking-Parameter.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "mkt.utm_internal",
      "kategorie": "marketing",
      "titel": "UTM-Parameter in internen Links nicht gefunden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Interne Links sind frei von UTM-Parametern.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.ai_phrases",
      "kategorie": "onpage",
      "titel": "Der Text enthält keine Häufung von Standardfloskeln",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.description_cta",
      "kategorie": "onpage",
      "titel": "Die Descriptions enthalten eine Handlungsaufforderung",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.h1_title_identical",
      "kategorie": "onpage",
      "titel": "H1 und Title sind unterschiedlich formuliert",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.heading_repeats",
      "kategorie": "onpage",
      "titel": "Überschriften wiederholen sich nicht innerhalb einer Seite",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.img_broken",
      "kategorie": "onpage",
      "titel": "Alle 7 geprüften Bilder sind erreichbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.img_filenames",
      "kategorie": "onpage",
      "titel": "Bilddateien haben sprechende Namen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.img_formats",
      "kategorie": "onpage",
      "titel": "100 % der Bilder nutzen moderne Formate (WebP/AVIF)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.img_size",
      "kategorie": "onpage",
      "titel": "Alle Bilder haben Breite und Höhe",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.keyword_overlap",
      "kategorie": "onpage",
      "titel": "Hauptbegriffe (zu wenige Seiten für eine Aussage)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.noscript_content",
      "kategorie": "onpage",
      "titel": "Kein relevanter Text nur im noscript-Block",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Keine Seite enthält einen nennenswerten noscript-Text.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.og_image_valid",
      "kategorie": "onpage",
      "titel": "Open-Graph-Bild ist absolut, sicher eingebunden und erreichbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [
        "https://www.luviq-alsfeld.com/static/shop1/images/luviq/og-start-1200x630.cf1dfb08ab87.jpg"
      ],
      "prioritaet": null
    },
    {
      "code": "onpage.og_url_match",
      "kategorie": "onpage",
      "titel": "og:url stimmt mit dem Canonical überein",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.open_graph_pages",
      "kategorie": "onpage",
      "titel": "Auch Unterseiten haben Open-Graph-Titel und -Bild",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.readability",
      "kategorie": "onpage",
      "titel": "Lesbarkeit (Flesch/Amstad) im Schnitt 62: gut lesbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Der Index schätzt anhand von Satz- und Wortlänge, wie leicht der Text zu lesen ist (0 schwer bis 100 leicht; Fachtexte liegen oft bei 30 bis 50).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.title_brand",
      "kategorie": "onpage",
      "titel": "Der Markenname steht nicht einheitlich im Title",
      "bestanden": false,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "In einem Teil der Titles fehlt ein gemeinsamer Markenname an derselben Stelle (z. B. „… | Firmenname“). Ein einheitliches Ende schafft Wiedererkennung im Suchergebnis.",
      "ursache": "",
      "loesung": "Hängen Sie an jeden Title denselben Firmennamen an, getrennt durch „ | “ oder „ – “.",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.title_special_chars",
      "kategorie": "onpage",
      "titel": "Titles ohne störende Sonderzeichen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "onpage.twitter_card",
      "kategorie": "onpage",
      "titel": "Twitter/X-Card ist gesetzt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.asset_count",
      "kategorie": "performance",
      "titel": "Nicht zu viele Skript- und Stylesheet-Dateien",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Höchstens 4 eigene Skript- und Stylesheet-Dateien je Seite.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.bfcache",
      "kategorie": "performance",
      "titel": "Seiten können im Vor-/Zurück-Cache bleiben",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Keine Seite trägt „no-store“ oder einen unload-Handler.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.blocking_scripts",
      "kategorie": "performance",
      "titel": "Keine blockierenden Skripte im Kopf der Seite",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle Skripte im <head> laden mit defer, async oder als Modul.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.cdn_libs",
      "kategorie": "performance",
      "titel": "Bibliotheken kommen vom eigenen Server",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine Seite lädt Skripte oder Styles von einem öffentlichen Bibliotheks-CDN.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.console_errors",
      "kategorie": "performance",
      "titel": "Keine Fehlermeldungen der eigenen Seite in der Browser-Konsole",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die eigene Seite erzeugt keine Konsolenfehler.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.deprecations",
      "kategorie": "performance",
      "titel": "Keine veralteten Browser-Schnittstellen im eigenen Code",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Der eigene Code nutzt keine veralteten Browser-Schnittstellen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.desktop.cls",
      "kategorie": "performance",
      "titel": "Cumulative Layout Shift Desktop: 0.043",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 0.043. Gut ist bis 0.100, schlecht ab 0.250 (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.desktop.fcp",
      "kategorie": "performance",
      "titel": "First Contentful Paint Desktop: 285 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 285 ms. Gut ist bis 1.8 s, schlecht ab 3.0 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.desktop.lcp",
      "kategorie": "performance",
      "titel": "Largest Contentful Paint Desktop: 650 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 650 ms. Gut ist bis 2.5 s, schlecht ab 4.0 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.desktop.score",
      "kategorie": "performance",
      "titel": "Lighthouse-Leistungswert Desktop: 100/100",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Google Lighthouse bewertet die Ladeleistung desktop mit 100 von 100 Punkten (Labormessung, simulierte Verbindung).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.desktop.si",
      "kategorie": "performance",
      "titel": "Speed Index Desktop: 473 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 473 ms. Gut ist bis 3.4 s, schlecht ab 5.8 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.desktop.tbt",
      "kategorie": "performance",
      "titel": "Total Blocking Time Desktop: 0 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 0 ms. Gut ist bis 200 ms, schlecht ab 600 ms (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.desktop.ttfb",
      "kategorie": "performance",
      "titel": "Server-Antwortzeit Desktop: 4 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 4 ms. Gut ist bis 800 ms, schlecht ab 1.8 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.duplicated_js",
      "kategorie": "performance",
      "titel": "Keine doppelten JavaScript-Module",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Kein nennenswerter Mehraufwand gemessen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.field.none",
      "kategorie": "performance",
      "titel": "Keine Felddaten echter Nutzer verfügbar",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Google hat für diese Website zu wenige Chrome-Besuche, um Core Web Vitals echter Nutzer auszuweisen. Angezeigt werden nur Labormessungen. Es werden keine Werte erfunden.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.font_display",
      "kategorie": "performance",
      "titel": "Schriften blockieren den Text nicht",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Webschriften laden mit font-display (Text bleibt sichtbar).",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.hero_priority",
      "kategorie": "performance",
      "titel": "Das erste Bild wird bevorzugt geladen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Das erste Bild trägt fetchpriority=\"high\" oder wird vorgeladen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.html_compression",
      "kategorie": "performance",
      "titel": "HTML wird komprimiert ausgeliefert",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle abgerufenen Seiten kommen gzip- bzw. brotli-komprimiert an.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.html_size",
      "kategorie": "performance",
      "titel": "HTML-Seiten haben eine vernünftige Größe",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine abgerufene Seite hat mehr als 200 KB reinen HTML-Code.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.http2",
      "kategorie": "performance",
      "titel": "Eigene Dateien über HTTP/2 oder HTTP/3",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die eigenen Dateien kommen über HTTP/2 oder HTTP/3 (mehrere Dateien parallel).",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.img_aspect",
      "kategorie": "performance",
      "titel": "Bilder erscheinen unverzerrt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle Bilder werden im richtigen Seitenverhältnis angezeigt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.img_srcset",
      "kategorie": "performance",
      "titel": "Bilder werden in mehreren Größen angeboten",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Inhaltsbilder bieten über srcset verschiedene Größen an.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.img_weight",
      "kategorie": "performance",
      "titel": "Einzelne Bilder sind nicht übergroß",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Kein Bild beim Aufruf der Startseite ist übergroß.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "www.luviq-alsfeld.com/static/shop1/images/luviq/hero-hoch-900.0603eb1… (230 KB)",
        "www.luviq-alsfeld.com/static/shop1/images/luviq/spinnennetz-jeans-hoc… (141 KB)",
        "res.cloudinary.com/dpuluomxr/image/upload/f_auto,q_auto,w_450,h_562,c… (64 KB)"
      ],
      "prioritaet": null
    },
    {
      "code": "perf.inline_weight",
      "kategorie": "performance",
      "titel": "Eingebetteter CSS/JS-Code bleibt klein",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Der im HTML eingebettete Code ist klein.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.lazy_loading",
      "kategorie": "performance",
      "titel": "Bilder laden bedarfsgerecht (Lazy-Loading)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Das erste Bild lädt sofort, spätere Bilder erst bei Bedarf.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "14 von 14 späteren Bildern lazy"
      ],
      "prioritaet": null
    },
    {
      "code": "perf.lcp_discovery",
      "kategorie": "performance",
      "titel": "Das größte Bild wird früh entdeckt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Das größte sichtbare Bild ist früh im HTML auffindbar und wird bevorzugt geladen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.legacy_js",
      "kategorie": "performance",
      "titel": "Kein unnötig altes JavaScript (Polyfills)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Kein nennenswerter Mehraufwand gemessen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.mobile.cls",
      "kategorie": "performance",
      "titel": "Cumulative Layout Shift Mobil: 0.000",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 0.000. Gut ist bis 0.100, schlecht ab 0.250 (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.mobile.fcp",
      "kategorie": "performance",
      "titel": "First Contentful Paint Mobil: 1.2 s",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 1.2 s. Gut ist bis 1.8 s, schlecht ab 3.0 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.mobile.score",
      "kategorie": "performance",
      "titel": "Lighthouse-Leistungswert Mobil: 95/100",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Google Lighthouse bewertet die Ladeleistung mobil mit 95 von 100 Punkten (Labormessung, simulierte Verbindung).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.mobile.si",
      "kategorie": "performance",
      "titel": "Speed Index Mobil: 1.2 s",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 1.2 s. Gut ist bis 3.4 s, schlecht ab 5.8 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.mobile.tbt",
      "kategorie": "performance",
      "titel": "Total Blocking Time Mobil: 0 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 0 ms. Gut ist bis 200 ms, schlecht ab 600 ms (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.mobile.ttfb",
      "kategorie": "performance",
      "titel": "Server-Antwortzeit Mobil: 5 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Gemessen: 5 ms. Gut ist bis 800 ms, schlecht ab 1.8 s (Labordaten).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.page_weight",
      "kategorie": "performance",
      "titel": "Seitengröße mobil: 0.7 MB",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Beim Laden der Startseite werden 0.7 MB übertragen. Gut ist bis 2 MB, problematisch ab 5 MB – besonders im Mobilfunk (Labormessung).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.redirect_first",
      "kategorie": "performance",
      "titel": "Aufruf läuft ohne zeitraubende Weiterleitung",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Beim Aufruf der Seite gibt es keine nennenswerte Weiterleitung.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.third_party_hosts",
      "kategorie": "performance",
      "titel": "Wenige fremde Server je Seite",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine Seite lädt Ressourcen von mehr als drei fremden Servern.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.unminified",
      "kategorie": "performance",
      "titel": "CSS und JavaScript sind verkleinert",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Eigene CSS- und JavaScript-Dateien sind verkleinert (minifiziert).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "perf.unsized_images",
      "kategorie": "performance",
      "titel": "Bilder reservieren ihren Platz (keine Layout-Sprünge)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle Bilder haben eine Größenangabe; der Browser hält den Platz frei.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.alt_host_tls",
      "kategorie": "security",
      "titel": "Zertifikat der zweiten Adressvariante (mit/ohne www) gültig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Auch die zweite Adressvariante (mit/ohne www) liefert ein gültiges Zertifikat.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.cache_sensitive",
      "kategorie": "security",
      "titel": "Seiten mit persönlichen Daten nicht zwischengespeichert",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Nicht anwendbar: keine Konto-, Bestell- oder Dankeseite unter den abgerufenen Seiten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.clickjacking",
      "kategorie": "security",
      "titel": "Schutz vor Einbettung in fremde Seiten (Clickjacking)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Seite verbietet das Einbetten in fremde Seiten.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.cookies",
      "kategorie": "security",
      "titel": "Cookies mit Schutz-Attributen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "1 Cookie(s) mit Secure/HttpOnly/SameSite.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.coop",
      "kategorie": "security",
      "titel": "Cross-Origin-Opener-Policy gesetzt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Fenster fremder Seiten sind von dieser Seite getrennt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.cors_wildcard",
      "kategorie": "security",
      "titel": "Keine Freigabe für jede fremde Herkunft (CORS)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine abgerufene Seite gibt ihren Inhalt für jede fremde Herkunft frei.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.csp",
      "kategorie": "security",
      "titel": "Content-Security-Policy gesetzt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Eine Content-Security-Policy ist aktiv.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.csp_base_uri",
      "kategorie": "security",
      "titel": "CSP legt base-uri fest",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die CSP schränkt <base>-Angaben ein.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.debug_traces",
      "kategorie": "security",
      "titel": "Keine Fehlermeldungen oder Entwicklungsspuren sichtbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Auf 25 geprüften Seiten (inkl. Fehlerseite) zeigt sich keine Entwicklungs- oder Fehlerausgabe.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.dir_listing",
      "kategorie": "security",
      "titel": "Keine Verzeichnisauflistung",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Keine der abgerufenen Seiten ist eine Dateiliste des Servers.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.form_foreign",
      "kategorie": "security",
      "titel": "Formulare senden an die eigene Herkunft",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle 13 Formulare senden an die eigene Domain.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.form_http",
      "kategorie": "security",
      "titel": "Formulare senden verschlüsselt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Kein Formular sendet seine Daten an eine http://-Adresse.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.headers_coverage",
      "kategorie": "security",
      "titel": "Sicherheits-Header auf allen Seiten",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle 23 weiteren Seiten tragen dieselben Sicherheits-Header wie die Startseite.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.hsts",
      "kategorie": "security",
      "titel": "HSTS aktiv",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "max-age=365 Tage",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.hsts_depth",
      "kategorie": "security",
      "titel": "HSTS mit einem Jahr Laufzeit und Unterdomänen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "HSTS gilt ein Jahr und für alle Unterdomänen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.http_redirect",
      "kategorie": "security",
      "titel": "Aufrufe über HTTP werden auf HTTPS umgeleitet",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die unverschlüsselte Adresse leitet auf die verschlüsselte um.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "http://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.https",
      "kategorie": "security",
      "titel": "Website nutzt HTTPS",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Startseite wird verschlüsselt (HTTPS) ausgeliefert.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "high",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.inline_handlers",
      "kategorie": "security",
      "titel": "Keine Ereignisbehandlung direkt im HTML",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Im HTML stehen keine onclick-/onload-Angaben; eine strenge CSP wäre möglich.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.mail.apex_cname",
      "kategorie": "security",
      "titel": "Kein CNAME auf dem Hauptnamen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Der Hauptname verwendet keinen CNAME.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.mail.dkim",
      "kategorie": "security",
      "titel": "DKIM-Schlüssel gefunden",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Unter 18 gängigen Selectoren wurde kein DKIM-Schlüssel gefunden. Das beweist nicht, dass DKIM fehlt: der Selector steht nur im Kopf einer Mail und kann beliebig heißen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.mail.dmarc",
      "kategorie": "security",
      "titel": "DMARC-Eintrag vorhanden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "DMARC legt fest, was mit gefälschten Mails geschieht.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "v=DMARC1; p=none;"
      ],
      "prioritaet": null
    },
    {
      "code": "sec.mixed_content",
      "kategorie": "security",
      "titel": "Keine unverschlüsselten Ressourcen auf HTTPS-Seiten",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Auf den geprüften Seiten werden Skripte, Styles und Bilder über HTTPS geladen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.nosniff",
      "kategorie": "security",
      "titel": "Header X-Content-Type-Options: nosniff",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Der Browser darf Dateitypen nicht „erraten“.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.outdated_js",
      "kategorie": "security",
      "titel": "Keine veralteten JavaScript-Bibliotheken erkannt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Anhand von Dateinamen und Kommentaren wurde keine bekannte verwundbare Bibliothek (jQuery, Bootstrap, AngularJS, lodash) gefunden. Die Erkennung ist nicht vollständig.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.paste_prevent",
      "kategorie": "security",
      "titel": "Einfügen in Eingabefelder nicht blockiert",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Eingabefelder erlauben das Einfügen aus der Zwischenablage.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.permission_prompts",
      "kategorie": "security",
      "titel": "Keine Berechtigungsabfrage beim Seitenaufruf",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Beim Aufruf der Startseite wird keine Berechtigung (Standort, Benachrichtigungen) abgefragt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.permissions_policy",
      "kategorie": "security",
      "titel": "Permissions-Policy gesetzt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Browser-Funktionen wie Kamera oder Standort sind eingeschränkt.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.referrer_policy",
      "kategorie": "security",
      "titel": "Referrer-Policy gesetzt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Referrer-Policy: strict-origin-when-cross-origin",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.scope_note",
      "kategorie": "security",
      "titel": "Hinweis zum Umfang der Sicherheitsprüfung",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "Geprüft werden nur öffentlich sichtbare Merkmale (Verschlüsselung, Sicherheits-Header, Seiteninhalte). Das ist kein Penetrationstest und keine vollständige Sicherheitsprüfung.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.security_txt",
      "kategorie": "security",
      "titel": "security.txt ist vorhanden und gültig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Datei /.well-known/security.txt enthält Contact und ein gültiges Ablaufdatum.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [
        "https://www.luviq-alsfeld.com/.well-known/security.txt"
      ],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.sri",
      "kategorie": "security",
      "titel": "Fremde Bibliotheken mit Integritätsprüfung (SRI)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Nicht anwendbar: keine Bibliothek von einem öffentlichen Bibliotheks-CDN eingebunden. (Dienste wie Google Tag Manager oder Maps können technisch kein SRI tragen.)",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.target_blank",
      "kategorie": "security",
      "titel": "Externe Links in neuem Fenster mit rel=noopener",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Alle 77 externen Links mit target=\"_blank\" tragen rel=\"noopener\".",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.tls.cert",
      "kategorie": "security",
      "titel": "TLS-Zertifikat ist gültig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Aussteller Let's Encrypt, gültig bis 2026-11-30 (noch 42 Tage).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.tls.version",
      "kategorie": "security",
      "titel": "Verschlüsselungsprotokoll TLS 1.3",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Ausgehandelt wurde TLSv1.3; das gilt als sicher.",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.version_disclosure",
      "kategorie": "security",
      "titel": "Keine Software-Versionen in Headern",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Server- und X-Powered-By-Header nennen keine Versionsnummern.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "sec.wp_version",
      "kategorie": "security",
      "titel": "Keine CMS-Version im Generator-Tag",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Das HTML verrät keine WordPress-Version.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.broken_anchors",
      "kategorie": "technical",
      "titel": "Sprungmarken führen zu vorhandenen Abschnitten",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.broken_external",
      "kategorie": "technical",
      "titel": "Alle 5 geprüften externen Links sind erreichbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.broken_internal",
      "kategorie": "technical",
      "titel": "Keine defekten internen Links gefunden",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.canonical_target_indexable",
      "kategorie": "technical",
      "titel": "Canonical zeigt auf eine indexierbare Seite",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "unavailable",
      "beschreibung": "Kein Canonical verweist auf eine andere, gecrawlte Seite.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.charset_early",
      "kategorie": "technical",
      "titel": "Zeichensatz steht früh im Kopf",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.empty_href",
      "kategorie": "technical",
      "titel": "Keine leeren oder unbrauchbaren Linkziele",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.home_status",
      "kategorie": "technical",
      "titel": "Die Startseite antwortet mit Status 200 (OK)",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Die Startseite lässt sich normal abrufen.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "high",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.http_redirect",
      "kategorie": "technical",
      "titel": "HTTP wird dauerhaft auf HTTPS weitergeleitet",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "http://www.luviq-alsfeld.com/ -> 301 -> https://www.luviq-alsfeld.com/"
      ],
      "prioritaet": null
    },
    {
      "code": "tech.link_depth",
      "kategorie": "technical",
      "titel": "Alle gecrawlten Seiten liegen höchstens 3 Klicks tief",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.links_http_external",
      "kategorie": "technical",
      "titel": "Externe Links nutzen https",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.links_per_page",
      "kategorie": "technical",
      "titel": "Seiten haben keine übermäßige Linkzahl",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.noindex_home",
      "kategorie": "technical",
      "titel": "Die Startseite ist indexierbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.not_found_status",
      "kategorie": "technical",
      "titel": "Nicht vorhandene Seiten liefern korrekt Status 404",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.page_size_outlier",
      "kategorie": "technical",
      "titel": "Keine Seite fällt durch ungewöhnliche Größe auf",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.pagination_canonical",
      "kategorie": "technical",
      "titel": "Seitenfolgen (nicht zutreffend)",
      "bestanden": null,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.plugins_frames",
      "kategorie": "technical",
      "titel": "Keine veralteten Plugins oder Frames",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "high",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.response_time",
      "kategorie": "technical",
      "titel": "Antwortzeit der Startseite: 384 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Zeit bis zur vollständigen Auslieferung des HTML von unserem Prüfserver aus (inkl. Verbindungsaufbau).",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.response_time_pages",
      "kategorie": "technical",
      "titel": "Typische Antwortzeit der Unterseiten: 85 ms",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.robots_blocks",
      "kategorie": "technical",
      "titel": "robots.txt sperrt 1 gefundene URL teilweise",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "Teilsperren sind normal.",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "https://www.luviq-alsfeld.com/login/"
      ],
      "prioritaet": null
    },
    {
      "code": "tech.robots_meta_conflict",
      "kategorie": "technical",
      "titel": "Meta-robots und X-Robots-Tag widersprechen sich nicht",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.robots_present",
      "kategorie": "technical",
      "titel": "robots.txt ist vorhanden und erreichbar",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.robots_txt_valid",
      "kategorie": "technical",
      "titel": "robots.txt ist fehlerfrei aufgebaut",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap",
      "kategorie": "technical",
      "titel": "XML-Sitemap gefunden mit 33 URLs",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "https://www.luviq-alsfeld.com/sitemap.xml (33 Einträge)"
      ],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap_host_match",
      "kategorie": "technical",
      "titel": "Sitemap nennt nur Adressen der Hauptvariante",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap_http_urls",
      "kategorie": "technical",
      "titel": "Sitemap enthält keine http-Adressen",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap_lastmod",
      "kategorie": "technical",
      "titel": "Sitemap pflegt lastmod glaubwürdig",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "heuristic",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.sitemap_relative_ref",
      "kategorie": "technical",
      "titel": "Sitemap-Angabe in der robots.txt ist eine vollständige Adresse",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "low",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.url_hygiene",
      "kategorie": "technical",
      "titel": "Adressen ohne Leerzeichen und doppelte Schrägstriche",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "low",
      "betroffene_urls": [],
      "belege": [],
      "prioritaet": null
    },
    {
      "code": "tech.www_consolidation",
      "kategorie": "technical",
      "titel": "www und ohne www sind zu einer Adresse zusammengeführt",
      "bestanden": true,
      "schwere": "info",
      "datenstatus": "measured",
      "beschreibung": "",
      "ursache": "",
      "loesung": "",
      "aufwand": "medium",
      "nutzen": "medium",
      "betroffene_urls": [],
      "belege": [
        "https://luviq-alsfeld.com/ -> 301 -> https://www.luviq-alsfeld.com/"
      ],
      "prioritaet": null
    }
  ],
  "hinweis": "Scores sind eigene, regelbasierte Bewertungen (Methodik: /methodik/). Kein offizieller Google-Wert."
}