# Product feature pages — data-driven improvement workflow

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

Phased checklist for SEO / AEO / GEO iteration on the **10 Funktionen** URLs. Aligns with blog/tools patterns: registry → collected JSON → synthesis → FAQ edits → validators → monitor.

**Hub:** [FEATURE_PAGES_CONTENT_INDEX.md](FEATURE_PAGES_CONTENT_INDEX.md) · **Data reference:** [DATA_COLLECTION_PRODUCT_FEATURES.md](DATA_COLLECTION_PRODUCT_FEATURES.md) · **VIP SISTRIX tiers:** [VIP_MARKETING_SEO_DATA_TIERS.md](../marketing-pages/VIP_MARKETING_SEO_DATA_TIERS.md) · **FAQ SSOT:** [PRODUCT_PAGE_FAQ_GUIDE.md](PRODUCT_PAGE_FAQ_GUIDE.md)

---

## Phase 0 — Refresh inputs

1. **API smoke (optional):** `php v2/scripts/blog/test-api-access.php --all`
2. **Per-feature batch (recommended):**  
   `bash v2/scripts/product-pages/run-feature-page-research-pipeline.sh feature-<slug> [--with-sistrix-serp] [--with-sistrix-domain-kw] [--with-firecrawl]`  
   Or run steps à la carte from [DATA_COLLECTION_PRODUCT_FEATURES.md](DATA_COLLECTION_PRODUCT_FEATURES.md).  
   **SISTRIX SERP snapshot:** include `--with-sistrix-serp` (or `make feature-serp PAGE=feature-<slug>`) **after** `gsc-queries.json` exists so the collector can merge top non-brand queries; compare snapshots over time via git or archived copies. **Cadence:** monthly for high-value features (e.g. Schichtplan, Zeiterfassung, Payroll), quarterly for the rest.  
   **VIP domain-keyword SERP (optional):** `--with-sistrix-domain-kw` runs `collect-marketing-page-domain-kw-serp.php` (~100 credits/keyword, max 5 from `target-keywords.json`). Use for head-term sprints when cheap SERP + GSC are insufficient; **always** regenerate synthesis and update `KEYWORD_DECISION.md` in the same iteration ([VIP_MARKETING_SEO_DATA_TIERS.md](../marketing-pages/VIP_MARKETING_SEO_DATA_TIERS.md)).
3. **Global portfolio (cadence):**  
   - `php v2/scripts/product-pages/collect-product-pages-performance-gsc.php`  
   - `php v2/scripts/product-pages/split-product-gsc-to-registry-pages.php`  
   - `php v2/scripts/product-pages/collect-product-pages-performance-ga4.php`  
4. **GSC query period compare (optional):** Keep two `gsc-queries.json` exports (non-overlapping or sequential windows), then run  
   `php v2/scripts/tools/compare-gsc-query-exports.php --before=path/to/gsc-queries-old.json --after=path/to/gsc-queries-new.json`  
   (see [docs/content/tools/GSC_QUERY_EXPORT_SCHEMA.md](../../tools/GSC_QUERY_EXPORT_SCHEMA.md) for field expectations).

---

## Phase 1 — Synthesis & keyword intent

1. `php v2/scripts/product-pages/generate-feature-page-data-synthesis.php --page=feature-<slug>`  
2. Read `{docs_dir}/DATA_DRIVEN_SYNTHESIS.generated.md` + `data/gsc-queries.json` + `data/keywords-sistrix.json` + when present `data/sistrix-keyword-serp.json` and `data/sistrix-domain-kw-serp.json` (cheap vs domain-scoped SERP; reconcile in narrative).  
3. Update `data/KEYWORD_DECISION.md` (primary/secondary, gaps, “do not chase” branded noise queries). **Do not** leave new JSON unreferenced here or in synthesis.  
4. Reconcile portfolio: [PRODUCT_FEATURE_OPPORTUNITY_LIST.md](PRODUCT_FEATURE_OPPORTUNITY_LIST.md) after large SISTRIX/GSC refreshes.

---

## Phase 2 — FAQ planning

1. Map **high-impression** queries and **PAA / question stems** (`data/faq-research.json`) to H2/hero intents.  
2. Use `competitor-faq-analysis.json` (if present) only as **topic** hints — no copied wording.  
3. List add/reorder/remove candidates; for Schichtplan live vs draft, follow [PRODUCT_PAGE_FAQ_GUIDE.md](PRODUCT_PAGE_FAQ_GUIDE.md) (`misc-faqs` + `*-neu` parity).

---

## Phase 3 — Answer edits (human gate)

1. Edit `faq-answers-optimized.json` in the feature `docs_dir` where that page is SSOT.  
2. For pages using **misc-faqs**, sync `v2/data/misc-faqs/product_*.json` and keep JSON-LD parity.  
3. Compliance-sensitive claims: legal/HR accuracy review before publish.

---

## Phase 4 — Validate

1. `python3 v2/scripts/product-pages/validate-faq-answers.py --page=feature-<slug>` (or legacy key).  
2. `php v2/scripts/dev-helpers/verify-faq-jsonld-parity.php --all-misc-faqs` (when misc-faqs touched).  
3. Rich Results Test on staging/production URL.  
4. `php -l` on touched PHP; run repo `make validate` when appropriate.

---

## Phase 5 — Publish & monitor

1. Deploy; spot-check FAQ UI + schema.  
2. **28-day** GSC check: clicks, impressions, CTR, position for `public_path`; compare to previous export if available.  
3. Note follow-ups in [PRODUCT_FEATURE_SEO_IMPROVEMENT_BACKLOG.md](PRODUCT_FEATURE_SEO_IMPROVEMENT_BACKLOG.md).

---

## When to re-run Phase 0

Before **large FAQ rewrites**, hero repositioning, or new competitor-heavy sprints — refresh at least **GSC queries + SISTRIX (metrics) + SISTRIX SERP (`--with-sistrix-serp` when credits OK) + Serper** (where API keys exist) so edits are evidence-led.
