PULSENOVA
JOURNAL
JEDER EINTRAG TRÄGT SEINE ZAHLEN
Diskutiert auf LinkedIn
Sechzig Seiten in zwei Tagen. Das Tempo war drei Jahre alt.
Wir haben die Website einer Physiotherapie-Praxis in zwei Tagen neu gebaut: sechzig Seiten, dreiundzwanzig Commits, eine Person. Accessibility 100 auf jeder Seite, und eine Zahl, die noch nicht grün ist.
60 SEITEN · 23 COMMITS · 100 A11Y · 3.99 S MOBILE LCP

Wir haben die Website der Physion GmbH in zwei Tagen neu gebaut. Sechzig Seiten, dreiundzwanzig Commits, eine Person. Physion ist eine Physiotherapiepraxis in Heilbronn und seit November 2023 Kunde. Die Seite, die wir ersetzt haben, stammte ebenfalls von mir. Ich habe sie 2023 in Webflow gebaut, mit einem CMS, das geplant, aber nie umgesetzt wurde, jQuery und drei Skripten, Managed Hosting und ohne eigene Backups.
Dieser letzte Satz ist die ganze Erklärung für das Tempo. Niemand baut eine Website neu, ohne sie jemals bei der Nutzung beobachtet zu haben. Ich hatte diese hier drei Jahre lang beobachtet.
Warum drei Jahre Beobachtung zwei Tage möglich machten
Ein Rebuild in zwei Tagen ist kein Trick. Es ist das Ergebnis, wenn die Person, die baut, bereits weiss, welche Seiten gelesen werden, welche nie gelesen wurden und was die Praxis ändern muss, ohne jemanden anzurufen. Drei Jahre Leben mit einer Website beantworten diese Fragen besser als jeder Workshop.
Die meisten Rebuilds verlieren ihre ersten zwei Wochen an Fragen, die wichtig klingen. Wohin kommt die Therapieliste. Braucht die Team-Seite einen Filter. Soll der Blog in der Hauptnavigation liegen. Auf dieser Website war jede dieser Fragen bereits von den Menschen beantwortet worden, die sie nutzen. Die Therapie-Seiten werden gelesen. Die Team-Seite wird gelesen. Der Rest ist Support. Das Layout war also keine Debatte, sondern ein Protokoll aus drei Jahren Nutzung.
Der zweite Grund für das Tempo ist weniger schmeichelhaft. Ich wusste genau, wo die alte Website wehtat, weil ich die schmerzhaften Teile selbst gebaut hatte. Das CMS, das nie kam, die Skripte, die wuchsen, das Hosting, das jemand anderem gehörte. Ein Rebuild, der bei den eigenen Fehlern ansetzt, hat eine kurze Liste.
Was übernommen wurde und warum jede URL blieb
Die alte Website war nicht dünn. Zweiundzwanzig Therapien, zehn Teammitglieder, vier Erfolgsgeschichten, zehn Artikel und dreizehn Google-Bewertungen. Alles davon lebte im CMS von Webflow. Alles musste unversehrt im neuen ankommen, unter denselben Adressen, damit drei Jahre Suchergebnisse immer noch ihre Seite finden.
Diese Einschränkung prägte die gesamte Migration. Dreizehn übernommene Weiterleitungen kamen zuerst, dann die neuen für Seiten, die ihre Form änderten. Jeder Inhaltstyp in Webflow erhielt einen passenden Typ in Sanity. Jedes Feld, das die Praxis tatsächlich ausfüllt, bekam ein Feld und sonst nichts. Die Migration von Inhalten ist nicht der glanzvolle Teil eines Rebuilds. Es ist der Teil, der entscheidet, ob die Praxis am Montagmorgen ihre Patienten behält.
Der Stack und wer welchen Teil davon anfasst
- Astro 7 rendert die sechzig Seiten als statisches HTML. Bewegung kommt von GSAP und Lenis, nichts Schwereres.
- Sanity verwaltet Therapien, Team und Blog. Die Praxis bearbeitet sie, nicht ich. Jeder Rich Text durchläuft einen Allowlist-Sanitizer, bevor er gerendert wird.
- Cloudflare liefert die Website aus. Ein nächtliches Backup der CMS-Inhalte läuft über GitHub Actions und jeder Push führt eine Build-Prüfung durch, bevor irgendetwas den Branch erreicht.
Drei Tools und die Praxis öffnet immer nur eines davon. Das ist der Sinn der Aufteilung. In Sanity liegen die Therapietexte, eine geänderte Öffnungszeit oder ein neuer Therapeut ist also ein Formular und kein Support-Ticket. Astro und Cloudflare gehören mir. Das Backup existiert, weil die alte Website keines hatte und weil eine Praxis niemals vom Laptop einer einzelnen Person abhängen sollte.
Was die Messung sagt
Lighthouse 12, Desktop-Preset, ausgeführt gegen den Production-Build am 3. September 2026. Fünf Seiten. Laborwerte, keine Felddaten.
- Home: Performance 98, largest contentful paint (LCP) 0,97 s
- Therapie: Performance 100, largest contentful paint 0,67 s
- Team: Performance 99, largest contentful paint 0,89 s
- Blog: Performance 99, largest contentful paint 0,88 s
- Kontakt: Performance 100, largest contentful paint 0,58 s
Accessibility 100 auf jeder Seite. Best Practices 100. SEO 100. Cumulative layout shift 0,000 auf allen fünf, was bedeutet, dass beim Laden der Seite nichts springt. Auf einem Desktop zeigt jede dieser Seiten ihren Hauptinhalt in unter einer Sekunde.
Ich möchte präzise sein, was diese Zahlen bedeuten. Sie stammen von einer Maschine, einem Netzwerkprofil und einem Durchlauf. Sie sagen dir, dass die Website gut gebaut ist. Sie sagen dir nicht, wie sie sich auf einem fünf Jahre alten Telefon in einem Wartezimmer anfühlt. Diese Messung kommt weiter unten und sie ist nicht grün.
Accessibility ist die Zahl, die mir wichtig ist
Menschen kommen mit Schmerzen auf eine Physiotherapie-Website, auf einem Telefon, oft älter als der durchschnittliche Besucher. Einige von ihnen nutzen einen Screenreader. Einige nutzen grossen Text. Alle wollen die Telefonnummer und die Therapieliste, keine Animation.
Die Reveal-Animationen auf dieser Website blenden Inhalte daher mit opacity statt mit autoAlpha ein. Der Unterschied klingt technisch und er ist wichtig. autoAlpha blendet ein Element für assistierende Technologien aus, bis die Animation beendet ist. Opacity ändert nur, was man sieht. Es wird nie etwas aus dem Accessibility-Tree entfernt und ein Screenreader erreicht jedes Wort, bevor die Animation beendet ist. Eine Person, die das Einblenden nicht sehen kann, bemerkt es nie. Eine Person, die auf einen Screenreader angewiesen ist, wartet nie darauf.
Die 100 auf jeder Seite ist das Ergebnis solcher Entscheidungen, die beim Bauen getroffen und nicht erst nachträglich korrigiert wurden. Es ist auch die Zahl, die ich als Erstes verteidigen würde, wenn ich die anderen aufgeben müsste.
Die Zahl, die noch nicht grün ist
Auf dem Mobiltelefon liegt der largest contentful paint zwischen 3,13 und 3,99 Sekunden, verglichen mit einem Core-Web-Vitals-Grenzwert von 2,5 Sekunden. Home 3,16 s mit einem Performance-Wert von 90. Therapie 3,13 s mit 92. Team 3,99 s mit 86.
Lighthouse nennt die Ursache eindeutig. Das Hero-Foto wird in einer grösseren Grösse ausgeliefert, als ein Telefon benötigt und dreiunddreissig Kilobyte werden darauf verschwendet. Das ist ein Fix, kein Rewrite. Ein korrekt dimensioniertes Bildset für den Hero-Bereich, geliefert vor den Schriftarten und der mobile Wert sinkt unter den Grenzwert. Das passiert, bevor die Website live geht.
Es steht in dieser Notiz aus demselben Grund, aus dem es auf Folie fünf des LinkedIn-Beitrags stand. Eine Fallstudie, die nur die grünen Zahlen zeigt, ist Werbung. Der mobile Wert ist derjenige, den ein Patient im Wartezimmer tatsächlich spürt, also verdient er es, gedruckt zu werden, solange er noch rot ist.
Der Teil, den niemand fotografiert
Die Praxis kann nun ihre eigenen Therapietexte ändern, einen Therapeuten hinzufügen und selbstständig einen Beitrag veröffentlichen. Kein neuer Look. Eine Website, die der Kunde tatsächlich betreiben kann. Dieser Satz entscheidet, ob sich ein Rebuild gelohnt hat und er ist auf keinem der Screenshots zu sehen.
Der Claim auf der Home-Seite stammt von ihnen, geschrieben, bevor die erste Seite existierte. "Physiotherapie. Nachhaltig. Nah." Meine Aufgabe war es, etwas zu bauen, das ihn auf einem Telefon, in einem Wartezimmer, um sieben Uhr morgens tragen kann. Die Website ist gebaut. Der Domain-Wechsel steht noch bevor, daher lautet der Status vorerst Launch in Vorbereitung.
Wenn deine eigene Website drei Jahre alt ist, schick mir den Link. Du erhältst innerhalb einer Woche schriftlich drei Entscheidungen, die darauf niemand getroffen hat. Unverbindlich.
PULSENOVA
NÄCHSTE NOTIZ
3 FALSCHE FIXES · 1 BREITE GETESTET · 6 NÖTIG
NEWSLETTER
Eine Build-Notiz. Jede Woche.
Was auf einer Kundensite live ging, was kaputtging, und der Fix, der funktioniert hat. Geschrieben aus dem Studio, einmal pro Woche. Kein Pitch, keine Linksammlung.
ABMELDUNG IN JEDER EMAIL. GESPEICHERT BEI KIT.
