Fehlende Sicherheits-Header, llms.txt beschreibt eine andere Firma, 404-Seite wird indexiert #84

Closed
opened 2026-09-06 23:08:16 +00:00 by Phil · 0 comments
Owner

Aus dem SEO-Audit vom 07.09.2026. Gebündelte P2-Befunde aus Infrastruktur und Auslieferung.

1. Sicherheits-Header fehlen vollständig (P2)

Auf allen Seiten fehlen: Strict-Transport-Security, Content-Security-Policy, Referrer-Policy, Permissions-Policy. Zusätzlich verrät x-powered-by: Craft CMS das CMS.

Gehört in die nginx-Config (docker/nginx/conf.d/philflow.conf) beziehungsweise Traefik-Middleware. HSTS braucht Sorgfalt: einmal mit langem max-age ausgeliefert, ist es für die Dauer nicht zurücknehmbar — erst mit kurzem Wert testen.

2. Die 404-Seite bekommt Index- und Sprachsignale (P2)

/gibtesnicht-xyz liefert korrekt Status 404, aber im <head>:

robots:     index, follow
canonical:  auf die nicht existierende URL selbst
hreflang:   auf /en/gibtesnicht-xyz

Der Ein-Tag-robots-Fix aus #62 hat den Fehlerseiten-Fall nicht mitgenommen: templates/404.twig erbt vom normalen Layout und damit die volle SEO-Ausstattung. Eine 404-Seite braucht noindex und keine Sprachverweise.

3. llms.txt beschreibt ein anderes Produkt als die Website (P2)

Die Datei verkauft „AI-Betriebssysteme" und die „Intelligence Platform". Die Startseite verkauft „Workflows, die sich in 90 Tagen selbst bezahlen".

Weiter:

  • Sie nennt zweimal cal.philflow.io als Buchungsziel, während jeder CTA der Website auf raven.ceo/book/phil/Erstgespräch zeigt
  • Sie ist rein deutsch und kennt /en/ nicht
  • Der in #58 ergänzte Blog-Abschnitt ist drin, aber der beschreibende Teil darüber passt nicht mehr zur Positionierung

Genau dieses Dokument lesen ChatGPT und Perplexity zuerst, wenn sie über Philflow Auskunft geben. Es ist derzeit die schlechteste verfügbare Beschreibung der Firma.

4. Trailing-Slash-Dubletten (P2)

/blog/, /impressum/ und /en/blog/ liefern 200 statt 301 auf die kanonische Fassung ohne Schrägstrich. Der /en-Fix aus #63 hat gezielt nur den EN-Site-Root behandelt.

5. Schema.org: JSON-LD nur auf 6 von 22 Seiten (P2)

Ergänzt #59 um konkrete Messwerte:

  • Startseite, /en/, beide Blog-Indizes, beide Kategorie-Archive und alle vier Rechtsseiten haben kein JSON-LD
  • Kein Organization, kein WebSite, kein FAQPage — obwohl die Startseite fünf FAQ-Fragen zeigt
  • Im vorhandenen Artikel-Schema ist image.url relativ (/assets/images/as4-hero-kerze.png) — Google verwirft das Bild
  • publisher ist als Person ausgezeichnet, nicht als Organisation
  • author.sameAs nennt eine dritte LinkedIn-URL, die weder mit dem Footer noch mit llms.txt übereinstimmt

6. Restabzüge aus Lighthouse (P3)

Mobil auf der Startseite: Performance 99, SEO 100, Server-Antwort 60 ms, LCP 1,0 s. Übrig bleiben unsized-images (CLS 0,048), 36 KiB ungenutztes JavaScript, ein render-blockierendes Script plus Stylesheet. Dazu: og:image verweist auf http:// und läuft in einen 301.

Einordnung: was die 100 Punkte verdecken

Lighthouse gibt der Seite mobil SEO 100 von 100 und sieht keinen der P1-Befunde aus #82 und #83. Es prüft weder hreflang-Reziprozität noch Paginierungs-Dubletten noch Indexabdeckung noch Sprachreinheit. Der Wert misst die Auslieferung, nicht die Auffindbarkeit.

Nicht geprüft

Farbkontrast (Lighthouse liefert score: null, das ist der Grund für Accessibility 96). Verhalten mit ausgeführtem JavaScript. Lighthouse lief nur auf / mobil; Artikel-, Kategorie- und EN-Templates nur über on_page_instant_pages (Scores 92,7–98,2).

Aus dem SEO-Audit vom 07.09.2026. Gebündelte P2-Befunde aus Infrastruktur und Auslieferung. ## 1. Sicherheits-Header fehlen vollständig (P2) Auf allen Seiten fehlen: `Strict-Transport-Security`, `Content-Security-Policy`, `Referrer-Policy`, `Permissions-Policy`. Zusätzlich verrät `x-powered-by: Craft CMS` das CMS. Gehört in die nginx-Config (`docker/nginx/conf.d/philflow.conf`) beziehungsweise Traefik-Middleware. HSTS braucht Sorgfalt: einmal mit langem `max-age` ausgeliefert, ist es für die Dauer nicht zurücknehmbar — erst mit kurzem Wert testen. ## 2. Die 404-Seite bekommt Index- und Sprachsignale (P2) `/gibtesnicht-xyz` liefert korrekt Status 404, aber im `<head>`: ``` robots: index, follow canonical: auf die nicht existierende URL selbst hreflang: auf /en/gibtesnicht-xyz ``` Der Ein-Tag-robots-Fix aus #62 hat den Fehlerseiten-Fall nicht mitgenommen: `templates/404.twig` erbt vom normalen Layout und damit die volle SEO-Ausstattung. Eine 404-Seite braucht `noindex` und keine Sprachverweise. ## 3. `llms.txt` beschreibt ein anderes Produkt als die Website (P2) Die Datei verkauft „AI-Betriebssysteme" und die „Intelligence Platform". Die Startseite verkauft „Workflows, die sich in 90 Tagen selbst bezahlen". Weiter: - Sie nennt zweimal `cal.philflow.io` als Buchungsziel, während **jeder CTA der Website** auf `raven.ceo/book/phil/Erstgespräch` zeigt - Sie ist rein deutsch und kennt `/en/` nicht - Der in #58 ergänzte Blog-Abschnitt ist drin, aber der beschreibende Teil darüber passt nicht mehr zur Positionierung Genau dieses Dokument lesen ChatGPT und Perplexity zuerst, wenn sie über Philflow Auskunft geben. Es ist derzeit die schlechteste verfügbare Beschreibung der Firma. ## 4. Trailing-Slash-Dubletten (P2) `/blog/`, `/impressum/` und `/en/blog/` liefern 200 statt 301 auf die kanonische Fassung ohne Schrägstrich. Der `/en`-Fix aus #63 hat gezielt nur den EN-Site-Root behandelt. ## 5. Schema.org: JSON-LD nur auf 6 von 22 Seiten (P2) Ergänzt #59 um konkrete Messwerte: - Startseite, `/en/`, beide Blog-Indizes, beide Kategorie-Archive und alle vier Rechtsseiten haben **kein** JSON-LD - Kein `Organization`, kein `WebSite`, kein `FAQPage` — obwohl die Startseite fünf FAQ-Fragen zeigt - Im vorhandenen Artikel-Schema ist `image.url` **relativ** (`/assets/images/as4-hero-kerze.png`) — Google verwirft das Bild - `publisher` ist als Person ausgezeichnet, nicht als Organisation - `author.sameAs` nennt eine **dritte** LinkedIn-URL, die weder mit dem Footer noch mit `llms.txt` übereinstimmt ## 6. Restabzüge aus Lighthouse (P3) Mobil auf der Startseite: Performance 99, SEO 100, Server-Antwort 60 ms, LCP 1,0 s. Übrig bleiben `unsized-images` (CLS 0,048), 36 KiB ungenutztes JavaScript, ein render-blockierendes Script plus Stylesheet. Dazu: `og:image` verweist auf `http://` und läuft in einen 301. ## Einordnung: was die 100 Punkte verdecken Lighthouse gibt der Seite mobil SEO 100 von 100 und sieht **keinen** der P1-Befunde aus #82 und #83. Es prüft weder hreflang-Reziprozität noch Paginierungs-Dubletten noch Indexabdeckung noch Sprachreinheit. Der Wert misst die Auslieferung, nicht die Auffindbarkeit. ## Nicht geprüft Farbkontrast (Lighthouse liefert `score: null`, das ist der Grund für Accessibility 96). Verhalten mit ausgeführtem JavaScript. Lighthouse lief nur auf `/` mobil; Artikel-, Kategorie- und EN-Templates nur über `on_page_instant_pages` (Scores 92,7–98,2).
Phil closed this issue 2026-09-07 09:52:24 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Phil/philflow.io#84
No description provided.