## Ergebnis: **Blocker vorhanden** ### Blocker – widersprüchliche Canonical-Domain - `src/layouts/BaseLayout.astro:12` und `src/layouts/PageLayout.astro:5` erzeugen Canonicals mit `https://www.gassergmbh.ch`. - `astro.config.mjs:5`, `public/robots.txt:4` und die generierte Sitemap verwenden dagegen `https://gassergmbh.ch`. - Live liefern aktuell **beide Hosts HTTP 200 ohne Weiterleitung**. Damit entstehen doppelte URLs und widersprüchliche SEO-Signale. - **Fix:** Einen Host verbindlich wählen, Canonical/JSON-LD/Sitemap/robots angleichen und den anderen Host serverseitig permanent per 301/308 umleiten. ### Hoch – unbelegte Inhaltsbehauptung - `src/pages/index.astro:45`: „**verifizierte Projektangaben**“ behauptet eine nachweisliche Prüfung, für die im Repository keine Provenienz dokumentiert ist. - **Fix:** Entweder Quellen/Freigaben je Referenz dokumentieren oder neutral „bestehende Projektangaben“ schreiben. Ebenso generische Baustellenbilder nicht als projektbezogene Referenzbilder erscheinen lassen. ### Hoch, falls `PUBLIC_FORM_ENDPOINT` produktiv gesetzt wird - `src/components/ProjectInquiryWizard.astro:67` sendet Namen, Telefon, E-Mail und Projektdetails an einen frei konfigurierbaren externen Endpoint. - `src/pages/datenschutz.astro:6` nennt dabei keinen Auftragsbearbeiter, Speicherort, Aufbewahrungszeitraum oder Übermittlungszweck des konkreten Dienstes. - **Fix:** Vor Aktivierung Endpoint/Empfänger festlegen, CORS und Missbrauchsschutz testen und Datenschutzerklärung konkret ergänzen. Ohne Endpoint ist der Mailto-Ablauf korrekt und ehrlich beschrieben. ### Mittel - `src/components/Header.astro:96–98,127`: Escape entfernt zwar `data-open`, das Desktop-Leistungsmenü kann wegen `:focus-within` dennoch sichtbar bleiben. - **Fix:** Escape-Verhalten browserseitig testen und einen expliziten geschlossenen Zustand implementieren. - `tests/site.spec.ts:5`: Axe schliesst `.hero` vollständig aus, obwohl die unabhängige Prüfung ohne Ausschluss ebenfalls bestanden hat. - **Fix:** `.exclude('.hero')` entfernen, damit spätere Hero-Regressionen erkannt werden. - Mehrere grosse, offenbar nicht mehr referenzierte Dateien werden weiterhin vollständig deployed, darunter alte Brand-PNGs und Baustellenoriginale; `public/images` umfasst rund **13 MB**. - **Fix:** Nutzung abschliessend prüfen und unreferenzierte Assets entfernen. Besonders Kandidaten aus den letzten Änderungen: `baustelle-wohnhaus.webp`, `anbau-wohnhaus.webp`, `bewehrungsarbeiten.webp`, `innenausbau-rohbau.webp`. ## Verifikation - Temporärer, sauberer Checkout von `21f8c7e`. - `npm ci`: **0 Vulnerabilities** - `npm run build`: **erfolgreich**, 22 Seiten, 0 Fehler - Playwright: **14 bestanden, 4 absichtlich übersprungen** - Axe zusätzlich ohne Hero-Ausnahme: **Desktop und Mobile bestanden** - Interne Linkprüfung: **keine kaputten Links** - Arbeitsbaum: **sauber** - Keine Projektdateien erstellt oder verändert. **Wichtig:** `HEAD` und `origin/main` stehen bereits beide auf `21f8c7e`; der geprüfte Stand wurde somit während des Reviews bereits gepusht.