# Überstundenabbau — creation notes

**Last Updated:** 2026-03-20

## Positioning

- **Primary keyword:** Überstundenabbau (Prozess: Abbau des Überstunden-Saldos).
- **Cannibalization:** **`ueberstunden`** = Entstehung/Begriff; **dieser Artikel** = Auszahlung vs. Freizeit/Zeitausgleich, Rollen, Fristen, Konto, Kündigung; **`freizeitausgleich` / `zeitausgleich`** = vertiefende Zeit-statt-Geld-Rechtslage; **`arbeitszeitkonto`** = Buchungs-/Kontoebene.
- **Cluster:** `zeiterfassung` (primary), `dienstplan` (secondary).

## Pipeline / data

- Pipeline + `paa-questions-manual.json` where PAA noisy; `SERP_ANALYSIS.md` with curated PAA (Personio competitor data sparse/429 noted).
- **Target depth:** ~4 000 words (competitive); body **~3 244** words (≥80 % strict). `compare-content-to-competitors.php` PASS.
- **Broken-link fix:** `/insights/lexikon/abwesenheiten/` → **product** `/abwesenheiten` (no lexikon slug).

## Content & Ordio

- Applied via `update-post-content.php` only (`docs/.../content.html` → `v2/data/blog/posts/lexikon/ueberstundenabbau.json`).
- Product: `/arbeitszeiterfassung`, `/schichtplan`, `/abwesenheiten`, `/payroll`, `/digitale-personalakte`, `/dokumentenmanagement`.
- Tools: `/tools/brutto-netto-rechner`, `/tools/zuschlagsrechner` (contextual).
- **`suggest-ordio-feature.php`** run post-draft.

## Internal linking

- **Bidirectional:** `data/bidirectional-links.json` + `add-bidirectional-links.php` (e.g. `ueberstunden`, `arbeitszeitkonto`).
- **`freizeitausgleich`:** Link „Überstundenabbau“ → `/insights/lexikon/ueberstundenabbau/` via `update-post-content.php`.
- **Validators:** `suggest-contextual-links.php`, `audit-blog-lexikon-links.php`, `audit-internal-link-density.php` (above max OK for lexikon 1:1), `validate-internal-links-exist.php --strict` PASS.

## Related posts & carousels

- **related_posts (curated):** zeiterfassung/dienstplan pillars + `ueberstunden`, `arbeitszeitkonto`, `freizeitausgleich`, `zeitausgleich`, `mehrarbeit`, `gleitzeit`, `schichtarbeit` (see post JSON).
- **`add-new-post-to-related-carousels.php --write`** (8 targets mirrored from plan).

## Lead capture

- `_slugToBenefit` + `lead_capture_copy.php` key **`blog_ueberstundenabbau`**; `generate-lead-capture-copy.php --write` if needed.

## FAQs

- **10** FAQs; manual **`faq-answers-optimized.json`** + `add-faqs-to-post.php --replace` (first AI run unusable).
- **`check-h2-faq-overlap.php`** PASS.

## Image & SEO

- **`IMAGE_PROMPT.md`:** scene distinct from Freizeitausgleich / Zeitausgleich (saldo/ledger or two-path visual).
- `generate-blog-featured-image.py` → WebP + srcset under `/insights/bilder/ueberstundenabbau-*`.
- **`v2/data/blog/seo-meta.json`** key **`lexikon/ueberstundenabbau`**; `sync-meta-to-posts.php`.
- **`docs/.../data/seo-meta.json`** copy for `validate-new-post.php` (docs-side mirror).

## LLM & inventory

- `v2/scripts/llms/sync-blog-posts-to-llms.php --add`.
- `normalize-and-match-terms.py` + `generate-lexikon-inventory-report.py` → **`ueberstundenabbau`:** `ordio_covered: true`, `ordio_slug: ueberstundenabbau`.

## Validation bundle (pre-merge)

- `validate-internal-links-exist.php --strict` — PASS.
- `validate-new-post.php --strict` — PASS; **WARN:** heuristic „industry Freizeit“ on substring *Freizeit* (ignore).
- `validate-section-depth.php`, `validate-content-completeness.php`, `validate-faq-quality.php` — EXCELLENT.
- `check-h2-faq-overlap.php` — PASS.

## Content revision (2026-03-20, review pass)

- **Word count:** ~3 865 / ~4 000 competitive target (~97 %); `compare-content-to-competitors` PASS.
- **Additions:** Second intro paragraph (Pillars **Zeiterfassung** / **Dienstplan**, Ratgeber **Überstunden erfassen**); expanded **Freizeit/Freizeitausgleich** H3 (Antrag vs. Anordnung, Kalender vs. Konto, **Arbeitszeitrechner**); table fix **Lohnabrechnung** as lexikon link; new H3 **„Von der Idee zur Buchung: fünf Schritte“** under Fristen; **Saldo** paragraph on interne Obergrenzen; new H3 **„Typische Fehler“** (Doppelbuchung, Resturlaub, Export, Still-Korrekturen); Kurzarbeit HR-Abgleich-Absatz; Kündigung-Absatz redigiert (weniger holprige Formulierung); Fazit mit Pillar-Links.
- **Validators:** `validate-internal-links-exist --strict`, `validate-section-depth`, `validate-content-completeness`, `check-h2-faq-overlap` — PASS.

## Post-deploy

1. HTTP 200 on live URL; title/H1 after cache.
2. [Rich Results Test](https://search.google.com/test/rich-results) — FAQPage + Article.
3. `sync-blog-posts-to-llms.php --update-counts` — run after content stabilizes (header counts in `llms.txt` / `llms-full.txt`).
4. **Rules CI:** Broken markdown links in `.cursor/rules/` fixed 2026-03-20 (`CONTENT_EXPANSION_CONTINUITY.md` → project-root path `docs/content/...`). `make rules` still exits non-zero if **glob validation** reports patterns with no matching files (7 patterns — repo-wide, booking-calendars / seo-strategy scripts / testimonials / _TEMPLATE); link validation passes.

## Inventory reference

- `docs/content/blog/lexikon-inventory/PERSONIO_DIENSTPLAN_ZEITERFASSUNG_GAPS.md` — `gleitzone`, `freizeitausgleich`, `ueberstundenabbau` listed under „Kürzlich in Ordio abgedeckt“; examples in „Bereits abgedeckt“ updated for discoverability.
