Nachkontrolle des Astro-Relaunches nach Umsetzung aller sechs Feinschliff-Punkte aus dem Erst-Audit (13.07.2026). Erneut geprüft über acht Säulen: technisches SEO, Rechtssicherheit & Datenschutz, Barrierefreiheit, Conversion, lokale Auffindbarkeit, Trust & Sicherheit, Mobile-UX und KI-Sichtbarkeit (GEO) — belegt aus den ausgelieferten HTML-, Header-, Sitemap- und Lighthouse-Daten.
Die im Erst-Audit benannten Punkte sind umgesetzt und live verifiziert: Canonicals ohne .html (deckungsgleich mit Sitemap & internen Links), das Team-Bild 404 behoben, H1 auf allen Seiten, Service-, Breadcrumb- und FAQ-Schema auf den Unterseiten, eine Content-Security-Policy als letzte Härtungsstufe und eine llms.txt für KI-Sichtbarkeit. Lighthouse steht jetzt mobil wie Desktop auf 100/100/100/100 — bei bereits vorher sauberen Rechts-, Datenschutz-, Conversion- und Local-Grundlagen. Offen bleiben nur Aufgaben für den späteren Go-Live auf der Produktiv-Domain (SPF/DMARC, URL-Umzug).
Grundlage jeder SEO: Kann Google die Seite finden, crawlen und korrekt in den Index aufnehmen? Hier ist die Umsetzung bis auf ein Detail vorbildlich.
robots.txt gibt alles frei (Allow: /), verweist auf sitemap-index.xml (→ sitemap-0.xml mit 16 URLs) und erlaubt zusätzlich ausdrücklich die Answer-Engine-Crawler (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended). Vorbildliche Ausgangslage für Sichtbarkeit in klassischer und generativer Suche.
HTTP → HTTPS greift per 301, ausgeliefert wird durchgängig über HTTP/2. Eine nicht existierende URL liefert einen echten HTTP 404 (kein Soft-404). TTFB der Seiten liegt dank Netlify-Edge bei ~0,2–0,4 s.
.htmlErst-Audit: alle 15 Unterseiten hatten ein rel="canonical" auf die .html-Variante (z. B. /about.html) — widersprüchlich zu Sitemap und internen Links.
Jetzt: die Canonical-Erzeugung läuft zentral im Astro-Layout und liefert durchgängig die saubere Pretty-URL (/about). Zusätzlich wird og:url passend gesetzt. Live geprüft: Canonical = Sitemap = interne Links auf allen Unterseiten.
Über alle 16 gecrawlten Seiten hinweg: durchgängig eindeutige, keyword- und ortsbezogene Titles („… in Murgenthal") und individuelle Meta-Descriptions — keine Duplikate, keine fehlende Description, keine toten internen Links (alle 2xx).
Maschinenlesbare Auszeichnung des Inhalts — Grundlage für Rich Results. Der lokal entscheidende LocalBusiness-Aspekt wird gesondert in Sektion 09 (Lokale Sichtbarkeit) bewertet.
Die Startseite liefert einen vollständigen Physiotherapy-Datensatz (Name, legalName, Telefon, E-Mail, Adresse, geo, openingHours, priceRange, aggregateRating, sameAs) plus ein sauberes FAQPage-Schema mit vier echten Frage-Antwort-Paaren (Verordnung, Ablauf, Kostenübernahme, Terminbuchung). Das ist Rich-Result-fähig auf gehobenem Niveau — mehr dazu in Sektion 09.
Erst-Audit: das JSON-LD steckte nur auf der Startseite; Leistungsseiten und /about hatten kein Markup.
Jetzt: jede Leistungsseite liefert ein Service-Objekt (verknüpft mit dem Physiotherapy-Anbieter), eine automatisch erzeugte BreadcrumbList (Start → Behandlungen → Leistung) sowie ein FAQPage-Schema, das aus den bereits sichtbaren Accordion-FAQs generiert wird — dadurch bleibt es garantiert deckungsgleich mit dem Seiteninhalt. /about und die übrigen Unterseiten tragen ebenfalls Breadcrumbs.
Titel, Meta-Beschreibungen, Überschriftenstruktur, Sprache und Social-Signale.
Titles (40–63 Zeichen) und Meta-Descriptions (159–162 Zeichen) liegen im optimalen Rahmen und sind pro Seite eindeutig. lang="de-CH" ist korrekt gesetzt (passend zum Schweizer Standort), ebenso Viewport. Social-Signale sind vollständig: og:title/description/image, og:locale=de_CH, og:site_name, twitter:card=summary_large_image und Apple-Touch-Icon.
Erst-Audit: /behandlungen und /termin starteten ohne H1 direkt mit H2.
Jetzt: auf beiden Seiten wurde die erste tragende Überschrift von <h2> auf <h1> gehoben (visuelle Klasse unverändert, kein Layout-Bruch). Alle 16 Seiten haben nun genau eine H1 — live bestätigt.
Kein Bild ohne alt-Attribut; rein dekorative Grafiken tragen korrekt ein leeres alt="". Der Lighthouse-Accessibility-Check (image-alt) besteht ohne Beanstandung — inhaltlich tragende Bilder dürfen bei Gelegenheit noch beschreibendere, keyword-nahe Alt-Texte erhalten.
Gemessen mit Google Lighthouse (PageSpeed Insights) für Mobil und Desktop. Ring-Farbe = Score-Band, darunter die Lab-Core-Web-Vitals.
Lighthouse meldet nach den Fixes Performance 100 mobil wie Desktop bei durchweg grünen Core Web Vitals: LCP 1,1 s mobil / 0,7 s Desktop, TBT 0 ms und ein perfekter CLS von 0 (kein Layout-Springen). Das ist das Ergebnis des statischen Astro-Builds — kein Server-Rendering pro Aufruf, wenig JavaScript.
Bilder liegen als WebP vor, werden per srcset responsiv ausgeliefert, sind zu >95 % mit width/height versehen (daher CLS 0) und lazy-geladen. Die statischen Astro-Assets tragen cache-control: public, max-age=31536000, immutable (far-future Caching), Auslieferung per HTTP/2 mit aktiver Kompression über das Netlify-CDN.
Erst-Audit: die responsive Variante Tanja-Zähringer-p-800.webp lieferte 404 (Umlaut-Kodierung NFD vs. NFC) → Konsolenfehler, Best Practices bei 96.
Jetzt: die Dateinamen sind auf eine ASCII-/einheitliche Schreibweise normalisiert (Tanja-Zaehringer-*.webp), src/srcset und Dateien stimmen überein. Live geprüft: Bild lädt mit 200, keine Konsolenfehler, Best Practices 100 (mobil & Desktop).
Serverbasis und eingebundene Fremd-Ressourcen. Die Sicherheits-Header und die Versionshygiene werden gesondert in Sektion 10 (Trust & Sicherheit) bewertet.
Der Astro-Relaunch hat die früheren Webflow-Abhängigkeiten (extern geladene Google Fonts, jQuery, Embedly-YouTube) entfernt. Es laden keine Google Fonts, kein Analytics/Tag-Manager und keine Auto-Embeds mehr. Facebook, Instagram, Google-Maps und die Terminbuchung sind nur als anklickbare Links hinterlegt — sie laden nichts, bis die Nutzer:in bewusst darauf klickt.
Die Bild-Assets werden weiterhin von cdn.prod.website-files.com (Webflow, über Cloudflare) geladen — gut zwischengespeichert (max-age=31536000) und performant. Funktional unkritisch; als Hinweis: Es bleibt eine Kopplung an die Webflow-Asset-Hosting-Infrastruktur, obwohl die Seite Webflow verlassen hat. Wer volle Unabhängigkeit will, spiegelt die Bilder ins eigene Repo/CDN.
HTTP/2, aktive Kompression, gültiges HTTPS sowie vollständige Favicon-/Apple-Touch-Icons (PNG in mehreren Größen, Light/Dark) sind sauber ausgeliefert.
Für einen Schweizer Betrieb gilt das revidierte Datenschutzgesetz (revDSG). Geprüft: Pflichtseiten, Transportsicherheit und ob Drittdienste personenbezogene Daten vor Einwilligung übertragen. Geprüft aus real ausgelieferten Seiten und Ressourcen.
/impressum und /datenschutz liefern HTTP 200 und sind im Footer verlinkt. Das Impressum nennt die vollständige Firma (Physiotherapie Murgenthal GmbH, Gesundheitszentrum Unterentfelden AG), Adresse und Handelsregister. HTTPS ist mit gültigem Zertifikat durchgängig erzwungen (HSTS mit preload).
Es laden keine Google Fonts, kein Analytics/Tag-Manager, keine Karten- oder Video-Auto-Embeds und keine Cookies vor Interaktion. Google-Maps und die Medidoc-Terminbuchung sind als reine Links/Buttons eingebunden — es fließen also erst Daten, wenn die Besucher:in aktiv klickt. Deshalb ist hier kein Cookie-Banner nötig, und es gibt keinen der klassischen Abmahn-Sachverhalte (extern geladene Fonts o. Ä.). Die Datenschutzerklärung benennt zudem transparent die eingesetzten Dienste (Medidoc, Webflow-CDN, Netlify).
Vor jeder Interaktion werden keine Set-Cookie-Header gesetzt, und es gibt keine über http:// geladenen Subressourcen (kein Mixed Content). Sauberer, datensparsamer Auslieferungszustand.
In der Schweiz verpflichtet das BehiG primär öffentliche Stellen; für private Betriebe ist Barrierefreiheit v. a. Nutzbarkeit, Reichweite und — sobald EU-/DE-Kund:innen adressiert werden — zunehmend relevant (EU-BFSG seit 28.06.2025). Gemessen mit Lighthouse (mobil & Desktop).
Der Lighthouse-Accessibility-Wert liegt mobil wie Desktop bei 100, ohne einen einzigen fehlgeschlagenen Teil-Audit (Kontrast, Alt-Texte, Labels, Heading-Order, html-has-lang, Tap-Ziele, Schriftgrößen — alle bestanden). Das ist ein Wert, den die wenigsten Praxis-Websites erreichen.
lang="de-CH" ist gesetzt, die Überschriftenhierarchie ist bis auf die zwei fehlenden H1 (Sektion 03) sauber, semantische Landmarks (main, nav, header, footer) sind vorhanden und die Navigation ist per Tastatur erreichbar. Tragfähige, moderne A11y-Grundlage.
Die entscheidende Frage für den Praxiserfolg: Macht die Seite aus Besucher:innen Kontakt? Geprüft werden Kontaktwege, Handlungsaufforderungen und Vertrauenssignale.
Click-to-Call (tel:) und E-Mail (mailto:) sind verlinkt, die Online-Terminbuchung über Medidoc ist prominent eingebunden, und oberhalb des Falzes stehen klare Handlungsaufforderungen („Termin buchen"). Der kürzeste Weg vom Besuch zum Termin ist damit an mehreren Stellen offen.
Google-Bewertungen sind im Sichttext eingebunden und als AggregateRating (4,6 von 5 aus 13 Bewertungen) im Schema hinterlegt — damit kann Google Sterne direkt im Suchergebnis anzeigen. Eine eigene FAQ mit vier häufigen Fragen nimmt zusätzlich Kaufhürden. Sehr gute Vertrauensbasis.
Als Ausbau (kein Mangel): Ein WhatsApp-Kontakt und eine kurze, immer sichtbare „Anfahrt & Öffnungszeiten"-Box können die Erreichbarkeit für spontane Anfragen weiter erhöhen. Die inhaltliche Basis (Öffnungszeiten, Adresse, Maps-Link) ist bereits vorhanden.
Für einen ortsgebundenen Betrieb der wichtigste Kanal: Local Pack, Google Maps und die lokale Suche. Entscheidend ist das LocalBusiness-Schema samt vollständiger Standortdaten.
Physiotherapy-Schema — vorbildlichDie Startseite liefert einen Physiotherapy-Datensatz (Subtyp von LocalBusiness) mit allem, worauf es lokal ankommt: vollständige NAP-Angabe (Fahrackerstrasse 1, 4853 Murgenthal, AG), telephone, email, Geo-Koordinaten, Öffnungszeiten (Mo–Fr 08–12 & 13–17:30), priceRange, hasMap und sameAs zu Google Maps, Facebook und Instagram. Genau dieser Baustein ist bei den meisten Praxis-Seiten der größte Hebel — hier ist er lehrbuchmäßig gesetzt.
Adresse, Telefonnummer und Öffnungszeiten stehen zusätzlich im Seitentext/Footer, und ein maps.app.goo.gl-Link führt direkt zum Google-Business-Eintrag. Maschinenlesbare und menschenlesbare Angaben stimmen überein — ideal fürs Local Pack.
Auf /about wird auch das Gesundheitszentrum Unterentfelden genannt. Falls dort ebenfalls behandelt wird, lohnt für diesen Standort perspektivisch ein eigenes LocalBusiness-Objekt bzw. eine eigene Standortseite — für maximale lokale Sichtbarkeit an beiden Orten.
Vertrauens- und Angriffsflächen-Perspektive: Transportsicherheit, Schutz-Header und die Frage, wie viel die Seite über ihre Software preisgibt.
Ausgeliefert werden Strict-Transport-Security (max-age 1 Jahr, includeSubDomains; preload), X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, Referrer-Policy und eine restriktive Permissions-Policy (Geolocation/Kamera/Mikrofon aus). Das ist deutlich mehr Härtung, als man auf Praxis-Seiten üblicherweise sieht.
Typische Angriffsflächen sind zu: /.git/HEAD, /.env und Backup-Pfade liefern 404, es gibt kein CMS-Login und keine x-powered-by-/Versions-Header. Als statischer Astro-Build gibt es serverseitig praktisch nichts anzugreifen — eine der sichersten Betriebsarten überhaupt.
Erst-Audit: die Content-Security-Policy war der einzige noch fehlende Schutz-Header.
Jetzt: in _headers ergänzt — default-src 'self' mit gezielten Freigaben (Bilder auch von cdn.prod.website-files.com, object-src 'none', frame-ancestors 'self', upgrade-insecure-requests). Vorab abgesichert, dass keine externen Skripte, kein eval, keine iframes/Forms genutzt werden — live geprüft: die CSP ist aktiv und verursacht keine Konsolen-/Ladefehler.
Google indexiert mobile-first, und die meisten Besucher:innen kommen vom Smartphone. Maßgeblich ist der mobile Lighthouse-Datensatz (siehe Gauges in Sektion 04) samt Bedienbarkeit auf kleinen Displays.
Die Performance-Ampel steht mobil wie Desktop bei 100 — der sonst übliche große Mobil-Abstand fehlt komplett. Mobiler LCP 1,1 s, TBT 0 ms, CLS 0: schnelle, ruckelfreie Darstellung auch auf schwächeren Geräten.
Der viewport ist korrekt gesetzt, es gibt kein horizontales Scrollen, und die Lighthouse-Mobil-Checks für Tap-Ziele, Schriftgrößen und Inhaltsbreite bestehen (Accessibility 100). Mobil-Erlebnis auf sehr hohem Niveau.
Immer mehr Menschen suchen über ChatGPT, Perplexity und Google-AI-Overviews. Generative Engine Optimization (GEO) prüft, wie gut die Seite von KI-Systemen gelesen, verstanden und zitiert werden kann — ein Zukunfts- und Chancenthema.
Die robots.txt erlaubt die KI-Crawler ausdrücklich (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended), das HTML nutzt semantische Landmarks (main, nav, header, footer, section), und ein echtes FAQPage-Schema mit direkt beantworteten Fragen liegt vor — genau die Inhalte, die KI-Systeme bevorzugt zitieren. Bessere Ausgangslage haben die wenigsten lokalen Betriebe.
llms.txt angelegt & FAQ-Schema ausgerolltErst-Audit: keine llms.txt (404), FAQ-Schema nur auf der Startseite.
Jetzt: /llms.txt mit Kurzprofil, Eckdaten (Adresse, Öffnungszeiten, Bewertung) und allen Kern-URLs ist live. Jede Leistungsseite trägt jetzt FAQPage-Schema aus den bereits sichtbaren Fragen — zusammen mit den semantischen Landmarks und der ausdrücklichen AI-Crawler-Freigabe eine sehr gute GEO-Basis.
| Prüfpunkt | Status | Befund |
|---|---|---|
| HTTPS & Redirects | OK | 301 http→https, HSTS preload |
| robots.txt (inkl. KI-Crawler) | OK | Allow /, GPTBot & Co. erlaubt |
| XML-Sitemap | OK | sitemap-index → 16 URLs |
| Canonical-Tags | OK | Behoben — saubere Pretty-URLs + og:url |
| 404-Handling | OK | Echter HTTP 404 |
| Duplicate-Meta / Broken Links | OK | 16 Seiten: keine Dubletten, keine toten Links |
| H1 / Heading-Struktur | OK | Behoben — genau 1 H1 auf allen 16 Seiten |
| Meta-Description / Titles | OK | Eindeutig, optimale Länge |
| Sprache / og:locale | OK | lang=de-CH, og:locale=de_CH |
| Strukturierte Daten (Startseite) | OK | Physiotherapy + FAQPage |
| Strukturierte Daten (Unterseiten) | OK | Service + Breadcrumb + FAQPage ergänzt |
| Performance (Lighthouse) | OK | Mobil & Desktop 100, CWV grün |
| Bildformate / Caching | OK | WebP + srcset, immutable Caching |
| Bild-404 (Umlaut-Datei) | OK | Behoben — Dateinamen normalisiert (200) |
| Impressum / Datenschutz | OK | Erreichbar (HTTP 200), verlinkt |
| Tracking / Consent | OK | Keine Tracker vor Zustimmung, kein Banner nötig |
| Cookie-Flags / Mixed Content | OK | Keine Cookies, kein Mixed Content |
| Barrierefreiheit | OK | Lighthouse A11y 100, keine Fails |
| Conversion | OK | tel:, mailto:, Online-Buchung, CTA |
| Lokale Sichtbarkeit | OK | Volles LocalBusiness-Schema + NAP |
| Security-Header | OK | HSTS, XCTO, XFO, Referrer, Permissions |
| Content-Security-Policy | OK | Gesetzt in _headers, live aktiv |
| Härtung / offene Endpoints | OK | .git/.env 404, keine Versionsleaks |
| Mobile-UX | OK | Mobil 100, Tap-Ziele/Fonts bestanden |
| KI-Sichtbarkeit (GEO) | OK | + llms.txt & FAQ-Schema auf Leistungsseiten |
| E-Mail-Sicherheit (SPF/DMARC) | n/a | Auf Staging-Domain nicht prüfbar → bei Go-Live |
Alle sechs Punkte aus dem Erst-Audit sind umgesetzt und live verifiziert. Übrig bleibt nur, was sinnvoll erst beim Go-Live auf der echten Domain passiert.
.htmlZentral im Astro-Layout gelöst, inkl. og:url. Canonical = Sitemap = interne Links auf allen Unterseiten.
Umlaut-Dateinamen normalisiert — Bild lädt mit 200, keine Konsolenfehler, Best Practices 100.
/behandlungen und /termin haben jetzt eine H1; alle 16 Seiten sauber.
Service + BreadcrumbList + FAQPage (aus sichtbaren FAQs) auf allen Leistungsseiten.
Strenge CSP in _headers (live, ohne Fehler) und /llms.txt für KI-Sichtbarkeit angelegt.
Beim Umzug von der Netlify-Staging-Domain auf die echte Domain: SPF/DMARC für die E-Mail-Domain setzen, site/Canonicals/OG-URLs auf den finalen Host umstellen und Weiterleitungen der alten Webflow-URLs (301) einrichten. Kein Mangel des jetzigen Stands — reine Launch-Vorbereitung.
Brand & Webdesign für Gesundheit, Coaching & Speaking