# CREATION_NOTES: 48-stunden-woche

**Last Updated:** 2026-04-04

## Backup

- Manual snapshot: `docs/backups/blog-snapshots/2026-04-04-125106/` (run `python3 scripts/blog/backup-blog-content.py --manual` before large edits if needed).
- SEO meta sync: `docs/backups/blog-seo-meta-sync-2026-04-04-110731/`
- Post content backup (earlier apply): `docs/backups/blog-content/lexikon-48-stunden-woche-2026-04-04-110329.json` (if present in repo)

## Keywords

- Primary: **48 Stunden Woche** (`data/target-keywords.json`).
- PAA: SISTRIX mostly off-topic → `data/paa-questions-manual.json` + pipeline re-run for FAQ research.

## Pipeline / SERP

- `run-new-post-pipeline.php` completed; `validate-blog-competitor-data-completeness.php --top=5` OK.
- `competitive-depth-analysis.md`: **Recommended Target** set to **3.500** words (aligned with `CONTENT_OUTLINE.md`) so `compare-content-to-competitors.php --strict` matches the outline gate; body **≥80 %** via `update-post-content.php` word counter (**~3.320** nach inhaltlichem Nachzug 2026-04-04).

## Content

- `content-draft.html` → `update-post-content.php --html=…` (no raw body/FAQ JSON edits).
- **Internal links:** `/insights/lexikon/schichtplan/` does not exist → product URLs `/schichtplan` for Schichtplan/Schichtplanung anchors.
- **content-flow:** Validator matched `häufig` + substring `Fragen` inside **Rückfragen** across sections → replaced „häufig engere“ with „typischerweise engere“, „Rückfragen“ with „Klärungsaufwand“; split long Überstundenfreigaben paragraph. **Nachzug:** Regex spannte von erstem H2 bis „häufig um einen“ (EU) und Verb „fragen“ in „Betriebsprüfung fragen selten“ → EU-Formulierung **„typischerweise um einen“**, Audit-Absatz **„beschränken sich …; entscheidend ist Nachvollziehbarkeit“**.
- **Inhaltlicher Ausbau (ohne Höchstarbeitszeit zu duplizieren):** nutzerzentrierterer Einstieg; Geltungsbereich ArbZG + Minijob/Homeoffice; H3 **Ruhepausen/Ruhezeiten** (Lexikon-Verweise); H3 **Referenzzeitraum/Durchschnitt EU**; H3 **Was gehört rechnerisch zur Woche?** (Rufbereitschaft/Bereitschaftsdienst); **Mini-Checkliste** + Link `/checklisten`; zwei **Missverständnisse** (EU-Flexibilität, Minijob); `/tools/minijob-rechner` neben Lexikon Minijob.
- **FAQs:** `faq-answers-optimized.json` → `add-faqs-to-post.php --replace`; first FAQ question rephrased to avoid H2 overlap with „Was bedeutet …“.
- **Branchen/Tools / Product:** Gastronomie/Pflege/Produktion/**Freizeit & Kultur** → Branchen-URLs; Lohnabsatz → `/lohnabrechnung`, `/tools/brutto-netto-rechner`; Tabellen-**TVöD** → `/tools/tvoed-sue-gehaltsrechner`; Nachtarbeit-Kontext → `/tools/zuschlagsrechner`; Hinweis-Box → `/digitale-personalakte`, `/dokumentenmanagement`; Listenpunkt → `/insights/lexikon/schichtzulagen/`. Substring-False-Positives im Product-Mapping vermieden: „Policy-Dokumenten“ → „interne Richtlinientexte“; „nächster Abschnitt“ → „folgender Hauptteil“. **Nachzug 2026-04-04:** `validate-new-post.php --strict` → **OK: All checks passed.**

## SEO & Bild

- `docs/.../data/seo-meta.json` + `v2/data/blog/seo-meta.json` key `lexikon/48-stunden-woche`; `sync-meta-to-posts.php`.
- Featured: `IMAGE_PROMPT.md` → `generate-blog-featured-image.py` → `v2/img/insights/48-stunden-woche-{640,1024,1280}w.webp`; JSON `src` under `/insights/bilder/`; **alt:** full title + ` | Ordio`.

## Related & Carousels

- `set-48-stunden-woche-related-posts.php` (12 `related_posts`).
- `add-new-post-to-related-carousels.php --write` → 9 peers: hoechstarbeitszeit, wochenarbeitszeit, 35-stunden-woche, flexible-arbeitszeit, arbeitszeitflexibilisierung, ueberstunden, mehrarbeit, langzeitkonto, schichtarbeit.
- **Bidirectional:** `suggest-bidirectional-links-for-new-post.php` returned 0 (peers already curated via carousels/related); no mandatory in-body peer edits.

## Cluster / Product

- `blog-cluster-mapping.json`: primary **zeiterfassung**, secondary **dienstplan** (`cluster_scores` dienstplan: 2).
- `docs/data/blog-product-feature-mapping.json`: `48-stunden-woche` → `/arbeitszeiterfassung`, `/schichtplan`.

## Lead / LLM

- `_slugToBenefit` **48-stunden-woche** in `generate-lead-capture-copy.php`; pattern `blog_48_stunden_woche` in `v2/data/lead_capture_copy.php`.
- `sync-blog-posts-to-llms.php --add` + `--update-counts`; header **366** Lexikon in `html/llms.txt` / `html/llms-full.txt`; `python3 v2/scripts/llms/validate-llms-metadata.py` OK.

## Inventory

- `normalize-and-match-terms.py` + `generate-lexikon-inventory-report.py` → GAPS ohne `48_stunden_woche`.

## Validierung

- `make blog-post-validate-strict POST=48-stunden-woche CAT=lexikon` → OK (2026-04-04).
- `validate-new-post.php --strict` → **OK: All checks passed** (Nachzug 2026-04-04).

## QA (Docker / Produktion)

- Per `global.mdc`, **kein** `php -S`. **Lokal:** Docker-Stack → `/insights/lexikon/48-stunden-woche/` prüfen (**200**, H1, TOC, FAQ, **Article** + **FAQPage** in JSON-LD).
- **Produktion (Stand Check 2026-04-04):** `https://www.ordio.com/insights/lexikon/48-stunden-woche/` liefert **404** bis zum Deploy dieses Slugs — nach Release erneut testen und [Rich-Results-Test](https://search.google.com/test/rich-results) auf die Live-URL laufen lassen.

## Caveats

- EU „opt-out“ nur kontextuell; keine Rechtsberatung.
- Cannibalization bewusst über Querverweise zu **Höchstarbeitszeit**, **Wochenarbeitszeit**, **35-Stunden-Woche**, **Langzeitkonto** statt Duplizierung der Tageslogik.
