[[Uebersicht|← Zurück zur Homepage]] # Claude Code Auftrag — SEO-Fixes im Blog **Erstellt:** 2026-07-22 18:18 **Korrigiert:** 2026-07-22 18:27 — Prämisse war falsch, siehe unten **Quelle der Befunde:** externe SEO-Nachkontrolle 22.07.2026 (dokumentiert in [[04 SEO-Optimierung.md]]) --- ## ⚠️ Korrektur 2026-07-22 — die ursprüngliche Prämisse war falsch Die erste Fassung dieses Auftrags ging von einer Pipeline **„Ghost → Python-Generator (auf LXC 108) → `blog/*.html` → WinSCP"** aus und adressierte den Fix an „Claude Code auf LXC 108". **Das stimmt nicht.** Vom Arbeitsplatz aus verifiziert (Zugang zu LXC 108 über Proxmox `pct exec`, Vergleich Ghost-Auslieferung ↔ lokale `blog/*.html`): - **Auf LXC 108 läuft nur Ghost** — kein Python-Generator, keine `.py`-Scripte, keine `blog/*.html`, kein Branding-String. Auch auf dem Arbeitsplatz existiert kein Blog-Generator (nur der PDF-Generator unter `c:\daten\scripte\obeco-pdf-generator`). - Die tatsächliche Pipeline (siehe [[Claude-Code-Prompt-BlogIntegration]]) ist: **Ghost → `wget --mirror`-Export → Umbau ins obeco-Template → `blog/*.html`**. Der Umbau lief **ad hoc in einer Claude-Session, es gibt kein gespeichertes Generator-Skript.** - Die beiden Befunde haben **unterschiedliche Quellen** — das ändert, wo der Fix hingehört: | Befund | Quelle (verifiziert) | Fix gehört … | |---|---|---| | **Fehlendes `alt`** | **Ghost selbst.** Die Blogger-importierten `kg-image` haben schon in Ghost `alt` leer (Ghost liefert `<img … class="kg-image" alt loading="lazy">`). Der Export kopiert das 1:1. | **in die Ghost-Post-Inhalte** (Entscheidung Joachim, s. u.) | | **`<title>` zu lang** | **NICHT Ghost.** Ghost liefert sauber `<title>Danke 2025</title>` **ohne** Zusatz. Das „ \| Obeco GmbH, Koblenz" wird erst beim Template-Umbau angehängt. | **in den Build-/Umbau-Schritt** (in Ghost gibt es nichts zu ändern) | --- ## Aufgabe 1 — Fehlende `alt`-Attribute (19 Bilder auf 15 Seiten) **Befund (lokal in `C:\Daten\RedesignObecoSite\blog\` verifiziert, exakt 19/15):** Die aus dem alten Blogger-Blog übernommenen Inhaltsbilder haben kein `alt`. Footer-/Layout-Bilder (`obeco-logo-footer.png`) sind korrekt. Ursprung ist **Ghost** (leeres `alt` im Post-Inhalt), nicht der Export. **Entscheidung (Joachim, 2026-07-22, korrigiert): `alt` direkt in Ghost pro Bild setzen.** - Für jedes der 19 Bilder in den betroffenen Ghost-Posts einen sinnvollen, bildbezogenen `alt`-Text setzen (deutsch). Vorhandene Bild-`title`-Attribute / Bildunterschriften als Ausgangspunkt nutzen, sonst am Beitragsinhalt orientieren; bei mehreren Bildern pro Beitrag unterscheiden. - Ghost ist die **echte Quelle** — dadurch ist jeder künftige Export automatisch korrekt. - Anschließend die betroffenen `blog/*.html` neu aus Ghost erzeugen/patchen und deployen, damit der Live-Stand die `alt`-Texte enthält. **Ziel:** 0 `<img>` ohne `alt` über alle Blog-Seiten (in Ghost **und** live). **Betroffene Posts (Slug → Anzahl Bilder ohne `alt`):** `arbeitsauftr-ge-geschickt-verteilt` (1), `der-oberberg-pass-ist-da` (1), `effizienz-in-der-jobverwaltung` (1), `elektronisches-qm-handbuch-iso-9000` (1), `gru-aus-der-vergangenheit-so-sah-der-blog-damals-aus` (1), `gut-geplant-ist-schneller-montiert` (1), `hier-entsteht-unser-neues-b-ro-in-wirges` (1), `katholische-pfarrverband-oberberg-mitte` (1), `m-b-betonbau-kalkuliert-mit-policom` (1), `mobil-unterwegs-mit-bild-und-ton` (1), `oberfl-chlich` (3), `policom-angebote-bebildert` (2), `policom-auf-dem-apple-ipad` (2), `support-auf-hohem-niveau` (1), `umgefragt-und-verlost` (1). --- ## Aufgabe 2 — Zu lange `<title>` (> 60 sichtbare Zeichen) **Befund:** Blog-Titel folgen dem Muster `<Beitragstitel> | Obeco GmbH, Koblenz`. Der Zusatz „ | Obeco GmbH, Koblenz" (22 Z.) treibt die Titel auf **73–82 sichtbare Zeichen**. Die Beitragstitel selbst liegen bei 51–60 Z. **Wichtig: Der Zusatz kommt NICHT aus Ghost** (Ghost-Titel sind sauber), sondern wird beim Template-Umbau angehängt. **Fix (im Build-/Umbau-Schritt):** Den Branding-Zusatz „ | Obeco GmbH, Koblenz" bei Blog-Posts **weglassen** → alle Titel liegen dann bei 51–60 Z. Zwei grenzwertige Beitragstitel (Azure 56, Intelligentes 60) ggf. minimal kürzen (dann in Ghost, weil der reine Beitragstitel von dort kommt), um Puffer zu schaffen. **Gemeldete Seiten (sichtbare Titel-Länge mit Zusatz):** | Seite | Länge | |---|---| | `gru-aus-der-vergangenheit-so-sah-der-blog-damals-aus` | 76 | | `protokollierung-datenschutzgerecht-gestaltet-dsgvo` | 74 | | `azure-sicherungstresor-f-r-hochverf-gbaren-datenspeicher` | 78 | | `intelligentes-energiemanagement-mit-dynamischen-strompreisen` | 82 | | `technische-schulden-ein-neues-wort-f-r-wartungsstau` | 77 | | `datenschutzgrundversorgung-l-schpflichten-beachten` | 73 | **Ziel:** alle Blog-`<title>` ≤ 60 sichtbare Zeichen. > Hinweis: Vor der lokalen Längenmessung HTML-Entities dekodieren (`&#252;` → `ü` usw.), sonst werden Umlaute zu lang gezählt. --- ## Infrastruktur-Notiz (für künftige Sitzungen) - **Zugang LXC 108 vom Arbeitsplatz:** kein direkter SSH-Key auf den Container, aber über Proxmox: `ssh proxmox 'pct exec 108 -- <cmd>'` läuft als root in `ghost-blog`. Ghost-DB: `/var/www/ghost/content/data/ghost-local.db` (SQLite, Ghost 6.45, Posts als Lexical-JSON + gerendertes `html`). `sqlite3` ist dort **nicht** installiert. - **Ghost erreichbar** unter `http://192.168.2.196:2368/<slug>/` (Content per `curl` direkt abrufbar). - **Es gibt kein Blog-Generator-Skript.** Falls der Umbau reproduzierbar werden soll, müsste er als echtes Skript nach `c:\daten\scripte\` geschrieben werden (Skript-Konvention). --- ## ✅ Erledigt 2026-07-22 (18:45) Beide Aufgaben umgesetzt und **live auf obeco.de verifiziert** (86 Blog-Seiten per HTTPS geprüft: **0 `<img>` ohne `alt`, 0 Titel > 60 Z., längster Titel = 60**). - **Aufgabe 1 — `alt` in Ghost:** Für alle 19 Bilder in den 15 Posts wurden bildbezogene deutsche `alt`-Texte **direkt in der Ghost-DB** gesetzt (Slug-genau, in Bildreihenfolge). Formate berücksichtigt: 12 Posts mobiledoc-`image`-Card, 1 Post mobiledoc-`html`-Card (`arbeitsauftr-ge-geschickt-verteilt`), 2 Posts `lexical` (`gru-aus-der-vergangenheit…`, `katholische-pfarrverband…`) — jeweils die Quelle **und** die gerenderte `html`-Spalte aktualisiert, damit Editor-Ansicht und Auslieferung/Export konsistent sind. Alt-Texte durch Sichtung jedes Bildes formuliert (Logos benannt, Screenshots beschrieben). DB vor der Änderung gesichert (`ghost-local.db.bak-altfix`), Ghost gestoppt/gestartet, Ghost-Auslieferung per `curl` gegengeprüft. - **Aufgabe 2 — `<title>`:** Branding-Zusatz „ | Obeco GmbH, Koblenz" in **allen 86** Blog-`blog/*.html` entfernt (Build-/Template-Artefakt, nicht in Ghost). Längster verbleibender Titel = 60 Z. (`Intelligentes Energiemanagement…`), keine Post-Titel-Kürzung nötig. - **Deploy:** alle 86 `blog/*.html` per WinSCP (Session `obeco.de`) nach `/blog/` hochgeladen, live gegengeprüft. **Hinweis für künftige Blog-Rebuilds:** Der `<title>`-Branding-Zusatz darf beim Template-Umbau **nicht** wieder angehängt werden (siehe Regel-Notiz in [[Claude-Code-Prompt-BlogIntegration]] Aufgabe 3). Die `alt`-Texte kommen künftig automatisch aus Ghost. --- ## Ursprünglicher Ablaufplan (erledigt) 1. `alt` in Ghost pro Bild setzen (Aufgabe 1); Branding-Zusatz im Blog-`<title>` am Build entfernen (Aufgabe 2). 2. Betroffene `blog/*.html` neu erzeugen/patchen, per WinSCP zu Host Europe deployen. 3. Rückmeldung an Joachim geben. 4. Lokal gegenkontrollieren: `alt`-Vollständigkeit (0 fehlend) + Titel-Längen (alle ≤ 60 Z.). --- ## Versionshistorie | Version | Datum | Uhrzeit | Änderung | |---|---|---|---| | 1.0 | 2026-07-22 | 18:18 | Auftrag erstellt: `alt`-Fallback (19 Bilder/15 Seiten) + Blog-`<title>` ≤ 60 Z.; Befunde aus SEO-Nachkontrolle 22.07. | | 2.0 | 2026-07-22 | 18:27 | **Prämisse korrigiert:** Kein Python-Generator auf LXC 108 (dort nur Ghost); kein Generator-Skript existiert. Quellen der Befunde verifiziert getrennt: fehlendes `alt` stammt aus Ghost-Inhalten, langer `<title>` aus dem Template-Umbau (Ghost-Titel sind sauber). Entscheidung `alt`: **direkt in Ghost pro Bild** statt Generator-Fallback. Betroffene Posts + Bildzahlen ergänzt, Infrastruktur-/Zugangsnotiz LXC 108 aufgenommen. | | 3.0 | 2026-07-22 | 18:45 | **Erledigt & live verifiziert.** 19 `alt`-Texte pro Bild in Ghost gesetzt (mobiledoc-image/mobiledoc-html/lexical + gerenderte html-Spalte, DB-Backup angelegt); Branding-Zusatz aus allen 86 Blog-`<title>` entfernt; alle 86 Dateien per WinSCP deployed. Live-Audit obeco.de: 0 fehlende `alt`, 0 Titel > 60 (max. 60). Abschluss-Abschnitt ergänzt. | --- ## Verwandt - [[04 SEO-Optimierung.md]] - [[Claude-Code-Prompt-BlogIntegration]] - [[01 Projektbeschreibung]]