Fix broken hreflang, duplicate robots meta and 404 images on EN site #57

Open
opened 2026-09-06 19:56:13 +00:00 by Phil · 0 comments
Owner

Seobility-Onpage-Report vom 06.09.2026: Technik & Meta bei 8 % (-11). Gemessene Ursachen für die schwerwiegenden Befunde.

Symptome (gemessen gegen Live, 06.09.2026)

1. hreflang zeigt auf Startseiten statt auf die Seite selbst (14 Alternate-Fehler)
Auf jeder Nicht-Startseite zeigt hreflang="de-DE" auf https://philflow.io/, auf jeder EN-Nicht-Startseite zeigt hreflang="en" auf https://philflow.io/en/. Der Selbstbezug fehlt durchgängig.

Ursache: templates/_system/seo.twig:64-78. entry.localized liefert in Craft per Definition nur die anderen Sites, nie die eigene. localizedEntries[site.id] ist für die aktuelle Site daher immer null, und Zeile 72 fällt auf site.baseUrl zurück. x-default (Z. 76-78) erbt denselben Fallback. Auf entry-losen Seiten (Kategorie-Archiv, paginierte Seiten) ist localizedEntries komplett leer → beide Verweise auf Startseiten.

2. Zwei gegenläufige robots-Tags auf 4 Seiten
/impressum, /datenschutz, /en/impressum, /en/datenschutz liefern im Quelltext sowohl index, follow als auch noindex, nofollow.

Ursache: seo.twig:18 schreibt index, follow hart, seo.twig:53-55 schreibt zusätzlich den Wert aus dem SEO-Feld.

3. Vier Bilder liefern 404 auf der englischen Startseite
https://philflow.io/en/img/pattern-1.png, schema-bg-2.png, schema-bg-3.png, schema-bg-4.png (plus .webp- und @2x-Varianten) → 404. Auf der DE-Startseite funktionieren dieselben Dateien.

Ursache: templates/_components/_blocks/pl_imageAndTextSection.twig:29 u. a. binden src="img/…" ohne führenden Schrägstrich ein; unter /en/ löst das relativ auf.

4. Startseite: 1,1 s bis zum ersten Byte
/ und /en/ bei 1,09-1,14 s TTFB, /blog/ bei 0,31 s, Unterseiten bei 0,25 s. Die Zeit vergeht vollständig vor dem ersten Byte. Unter 25 parallelen Requests bis 6,1 s — das erklärt vermutlich auch die 4 von Seobility als „nicht abrufbar" gewerteten Seiten (kein einziger echter 4xx/5xx reproduzierbar).

Akzeptanzkriterien

  • Jede Seite nennt sich in hreflang selbst und verweist auf ihre Gegensprache; existiert keine Übersetzung, wird für diese Sprache kein Tag geschrieben statt auf die Startseite zu zeigen
  • x-default zeigt auf die deutsche Fassung derselben Seite
  • Kategorie-Archiv und paginierte Seiten liefern korrekte hreflang-Verweise
  • curl -s https://philflow.io/impressum | grep -c 'name="robots"' ergibt 1
  • Kein img-404 mehr auf /en/
  • TTFB von / unter 0,5 s, mit belegter Ursachenanalyse (Query-Profiling, nicht geraten)
  • <html lang> ohne doppeltes Leerzeichen, og:locale im gültigen Format

Plan: .claude/plans/ (Schritt 1 von 3).

Seobility-Onpage-Report vom 06.09.2026: Technik & Meta bei 8 % (-11). Gemessene Ursachen für die schwerwiegenden Befunde. ## Symptome (gemessen gegen Live, 06.09.2026) **1. hreflang zeigt auf Startseiten statt auf die Seite selbst (14 Alternate-Fehler)** Auf *jeder* Nicht-Startseite zeigt `hreflang="de-DE"` auf `https://philflow.io/`, auf jeder EN-Nicht-Startseite zeigt `hreflang="en"` auf `https://philflow.io/en/`. Der Selbstbezug fehlt durchgängig. Ursache: `templates/_system/seo.twig:64-78`. `entry.localized` liefert in Craft per Definition nur die *anderen* Sites, nie die eigene. `localizedEntries[site.id]` ist für die aktuelle Site daher immer null, und Zeile 72 fällt auf `site.baseUrl` zurück. `x-default` (Z. 76-78) erbt denselben Fallback. Auf entry-losen Seiten (Kategorie-Archiv, paginierte Seiten) ist `localizedEntries` komplett leer → beide Verweise auf Startseiten. **2. Zwei gegenläufige robots-Tags auf 4 Seiten** `/impressum`, `/datenschutz`, `/en/impressum`, `/en/datenschutz` liefern im Quelltext sowohl `index, follow` als auch `noindex, nofollow`. Ursache: `seo.twig:18` schreibt `index, follow` hart, `seo.twig:53-55` schreibt zusätzlich den Wert aus dem SEO-Feld. **3. Vier Bilder liefern 404 auf der englischen Startseite** `https://philflow.io/en/img/pattern-1.png`, `schema-bg-2.png`, `schema-bg-3.png`, `schema-bg-4.png` (plus `.webp`- und `@2x`-Varianten) → 404. Auf der DE-Startseite funktionieren dieselben Dateien. Ursache: `templates/_components/_blocks/pl_imageAndTextSection.twig:29` u. a. binden `src="img/…"` ohne führenden Schrägstrich ein; unter `/en/` löst das relativ auf. **4. Startseite: 1,1 s bis zum ersten Byte** `/` und `/en/` bei 1,09-1,14 s TTFB, `/blog/` bei 0,31 s, Unterseiten bei 0,25 s. Die Zeit vergeht vollständig vor dem ersten Byte. Unter 25 parallelen Requests bis 6,1 s — das erklärt vermutlich auch die 4 von Seobility als „nicht abrufbar" gewerteten Seiten (kein einziger echter 4xx/5xx reproduzierbar). ## Akzeptanzkriterien - [ ] Jede Seite nennt sich in hreflang selbst und verweist auf ihre Gegensprache; existiert keine Übersetzung, wird für diese Sprache **kein** Tag geschrieben statt auf die Startseite zu zeigen - [ ] `x-default` zeigt auf die deutsche Fassung derselben Seite - [ ] Kategorie-Archiv und paginierte Seiten liefern korrekte hreflang-Verweise - [ ] `curl -s https://philflow.io/impressum | grep -c 'name="robots"'` ergibt `1` - [ ] Kein `img`-404 mehr auf `/en/` - [ ] TTFB von `/` unter 0,5 s, mit belegter Ursachenanalyse (Query-Profiling, nicht geraten) - [ ] `<html lang>` ohne doppeltes Leerzeichen, `og:locale` im gültigen Format Plan: `.claude/plans/` (Schritt 1 von 3).
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#57
No description provided.