# Pillar page — FAQ data-driven refresh (checklist)

Use when reworking `v2/data/misc-faqs/pillar_{slug}.json` with GSC/SISTRIX-backed research. Hub: [`FAQ_WEBSITE_STANDARD.md`](../../FAQ_WEBSITE_STANDARD.md), [`DATA_COLLECTION_PILLAR.md`](../DATA_COLLECTION_PILLAR.md).

## Before writing copy

1. Ensure `docs/content/pages/pillar-pages/{slug}/` has `KEYWORD_DECISION.md` (seed clusters + merge rules).
2. Maintain `data/keywords-candidate.json` (first rows = pillar intent, not generic HR noise).
3. Run data pipeline from repo root (see [`DATA_COLLECTION_PILLAR.md`](../DATA_COLLECTION_PILLAR.md)):
   - `php v2/scripts/seo/collect-gsc-queries.php --path=/insights/{slug} --output=.../data/gsc-queries.json` (canonical wrapper; same as `collect-tool-gsc-queries.php`)
   - `collect-pillar-keywords-sistrix.php --pillar={slug}` → `data/keywords-sistrix.json`
   - `collect-pillar-keyword-serp.php --pillar={slug}` → `data/sistrix-keyword-serp.json`
   - Optional one-shot: `bash v2/scripts/pillar-pages/run-pillar-research-pipeline.sh {slug} [--with-ga4]`
4. Optional: GA4 API → `php v2/scripts/seo/collect-page-performance-ga4.php --path=/insights/{slug} --output=.../data/ga4-landing.json` (or manual Exploration export).
5. Serper PAA: **no** registry script for pillars — document intents in `data/faq-research-serper.json` (GSC query strings + SISTRIX titles if API returns empty PAA).
6. Update `SERP_ANALYSIS.md` / `COMPETITIVE_ANALYSIS.md` when SERP/competitive context changes.

## Editorial

7. Map top GSC/SISTRIX stems to questions; **prune** overlap with on-page H2/TOC ([`FAQ_REWORK_DECISION_TREE.md`](../../FAQ_REWORK_DECISION_TREE.md)).
8. Merge near-duplicate Pflicht/Digital/„beste App“ intents; keep **one** product-context link where natural (`/arbeitszeiterfassung` etc.).
9. `du` tone; paragraphs first; internal links opportunity-driven; **no** `/kostenlos-testen` ([`no-internal-kostenlos-testen-links.mdc`](../../../../.cursor/rules/no-internal-kostenlos-testen-links.mdc)).
10. Document FAQ count + slot mapping in `KEYWORD_DECISION.md`.

## After edits

11. `php v2/scripts/dev-helpers/audit-faq-json-internal-links.php '--glob=v2/data/misc-faqs/pillar_*.json'`
12. `php v2/scripts/dev-helpers/audit-faq-json-self-links-and-anchors.php --file=v2/data/misc-faqs/pillar_{slug}.json`
13. `php v2/scripts/dev-helpers/verify-faq-jsonld-parity.php --file=misc-faqs/pillar_{slug}.json`
14. `php v2/scripts/dev-helpers/audit-marketing-faq-ssot.php`
15. Post-deploy: [Rich Results Test](https://search.google.com/test/rich-results) on the canonical pillar URL.

**Reference sprint:** `zeiterfassung` — `docs/content/pages/pillar-pages/zeiterfassung/KEYWORD_DECISION.md` (2026-04-10).
