# Blog System - Next Steps

**Last Updated:** 2026-02-11

**Single entry point** for blog next steps. **Manual review resumption:** When reviewing/improving blog posts one-by-one, use [MANUAL_REVIEW_RESUME_RUNBOOK.md](MANUAL_REVIEW_RESUME_RUNBOOK.md) as the single entry point. For topic-specific or historical next-steps docs see "Other next-steps docs (reference)" at the end.

**Where to pick "what to do next" (optimize vs create):** [CONTENT_BACKLOG.md](CONTENT_BACKLOG.md) — merge of top priority posts to optimize and domain-level opportunities/ideas for new content. Regenerate with `php v2/scripts/blog/generate-content-backlog.php` after priority refresh or domain-level collection. The "Create new" list in the backlog shows only **true content gaps** (keywords where we don’t yet have a dedicated page — ranking URL is homepage or other); opportunities that already point to tools, comparison, or product pages appear under "Already covered (optimize existing page)."

## Recent progress (2026-02-11)

- **Blog Improvement Workflow Overhaul:** Pipeline now includes PAA collection (after SISTRIX keywords, before FAQ research). Parallelized GA4+GSC collection and parallel analyze (content, SEO, links). Expanded CONTENT_OUTLINE template with PAA matrix, competitor H2 mapping, GSC alignment. New scripts: generate-outline-expansion-suggestions.php, validate-faq-readiness.php, test-improvement-pipeline.php. Validation strengthened for PAA/competitor coverage. FAQ workflow: PAA before FAQ, check-h2-faq-overlap before add-faqs-to-post. Docs: BLOG_IMPROVEMENT_EFFICIENCY_GUIDE, updated FAQ_CREATION_WORKFLOW, MANUAL_REVIEW_RESUME_RUNBOOK, DATA_COLLECTION_SCRIPTS_INVENTORY. Rules: blog-content-creation-gate, blog-faq-optimization-core, blog-improvement-process-workflow updated.
- **Teilzeitarbeit expansion:** 476 → 1,204 words. Sections: Definition, Teilzeit vs Minijob, Arten, Stunden, Verdienst, Anspruch, Vor-/Nachteile, Schichtbetrieb. Applied via update-post-content.php.
- **PAA collection fix & full run:** SISTRIX keyword.questions returns `answer[0].questions` (not `result`) and `search_volume` (not `traffic`). Script parsing fixed; credits now use API's `credits.used`. Full PAA run: 97 posts, 1,189 questions. HTTP 0 retries: 5/6 succeeded (erschwerniszulage, feiertagsausgleich, krankmeldung, tarifvertraege, kunden-werben-kunden); omr-badges has 0 from SISTRIX (niche term). FAQ research merged PAA into faq-research.json. **Audit:** FAQ paa_questions empty: 16 (down from 103).
- **PAA collection resilience (2026-02-11):** Retry logic added for HTTP 0, 429, 5xx (3 retries, 2s/4s/8s backoff). Pipeline options: `--skip-paa` (skip PAA when credits low), `--allow-paa-failure` (continue on PAA failure; add manual paa-questions.json later). Primary keyword fallback: target-keywords.json `primary`.
- **Weekly priority refresh completed:** GA4 (103), GSC (103), priority (112), dashboard. Top priorities: zuschlage-berechnen-rechner (70.3), arbeitsstunden-pro-monat (70.2). 2 High, 98 Quick Wins.
- **Blog Improvement Process Overhaul completed:** Keyword-first infrastructure (derive-target-keywords.php, --keywords override, target-keywords.json support in SISTRIX/FAQ/SERP collectors), run-post-improvement-pipeline.php orchestrator, validate-target-keywords.php, full rework + skyscraper docs. MANUAL_REVIEW_RESUME_RUNBOOK and BLOG_POST_IMPROVEMENT_PROCESS updated. BLOG_IMPROVEMENT_QUICK_REFERENCE.md created.
- **Pipeline proof-of-concept:** Ran full pipeline for midijob (GA4, GSC, derive keywords, analyze, regenerate docs). Ran pipeline for fehler-digitalisierung-gastronomie—now 1.693 words (already expanded).
- **Lexikon Midijob post improved:** Definition corrected (removed false "sozialversicherungsfrei"), 2026 limits (603,01–2.000 €), new sections (Ab wann Midijob, Anmeldung, Midijob vs. Minijob, Fazit), GSC-targeted FAQs (7), keywords fixed to midijob-related, off-topic images removed, ~1.200 words. Validation passed.
- **Manual review setup audit completed:** Created MANUAL_REVIEW_RESUME_RUNBOOK.md (single entry point for "review post X" workflow), updated blog-manual-review.mdc, added EEO/GEO best practices to SEO_BEST_PRACTICES_2026, added AI content avoidance refs to BLOG_POST_IMPROVEMENT_PROCESS, documented completion criteria in REVIEW_PROGRESS_TRACKER. All scripts verified operational.

## Recent progress (2026-02-08)

- **Blog traffic & SEO audit completed:** Script fixes (weekly-priority-refresh now calls `calculate-comprehensive-priority.php` and `generate-priority-dashboard.php`), DATA_FRESHNESS_REPORT and COLLECTION_HEALTH_DASHBOARD regenerated, PERFORMANCE_ANALYSIS.md updated, README.md index and AUDIT_RUNBOOK.md added, refresh cadence documented.
- **Tier 1 data refresh:** Ran `check-data-freshness.php --tier=1 --max-age=7 --auto-refresh`; all 20 Tier 1 posts had FAQ research data refreshed. Weekly-priority-refresh fixed to pass `--all --limit=N` to GA4/GSC/priority scripts when limit is set.
- **Weekly-priority-refresh verified:** Ran `weekly-priority-refresh.php --limit=5`; GA4, GSC, priority calculation, and priority dashboard all completed successfully. DATA_FRESHNESS_REPORT regenerated after refresh.
- **Full refresh completed:** GA4 and GSC run for all posts (99 processed each; 9 errors are placeholder/malformed slugs like `{slug}.json`). Priority calculated for 98 posts; dashboard and DATA_FRESHNESS_REPORT regenerated. For full run use: `php v2/scripts/blog/weekly-priority-refresh.php` (allow ~5+ min; or run GA4, GSC, priority, dashboard in sequence if timeout occurs).
- **Documentation cleanup (done):** blog-monitoring.mdc updated, AUDIT_RUNBOOK.md created, RULE_TO_DOC_MAPPING updated.

- **Tier 1 serp-features filled:** All 13 Tier 1 posts that were missing `serp-features.json` now have it. Script `collect-post-serp-features.php` was updated to support `--post=slug --category=category` (per-post mode); used with `--limit=15` for each post. Tier 1 freshness check now shows 0 missing for that tier. DATA_FRESHNESS_REPORT regenerated.

**Next (ongoing):** Run `weekly-priority-refresh.php` weekly (e.g. Monday 10 AM cron); use `--limit=N` for a quick run or no limit for full refresh.

- **SEO Reports & SISTRIX plan (2026-02-08):** Implemented. New: domain visibility index (collect-domain-visibilityindex.php, 7-day cache), SISTRIX_ENDPOINTS_AND_REPORTS.md, Recommended actions in priority dashboard (section 7), per-post SISTRIX recommendations in keyword-opportunities report, optional SEO_ACTION_LIST.md (generate-seo-action-list.php), check-sistrix-credits.php. Runbooks and blog-monitoring.mdc updated.
- **Audit checklist run (2026-02-08):** Freshness check, validate-data-collection, validate-api-data-quality, and all report/dashboard regenerations completed. See AUDIT_TODO_2026-02.md (checklist updated). **Manual review completed 2026-02-08** (DATA_FRESHNESS_REPORT and COLLECTION_HEALTH_DASHBOARD reviewed; no issues). PERFORMANCE_ANALYSIS Last Updated confirmed.

- **Domain-level collection run (2026-02-08):** Ran `collect-domain-opportunities.php --limit=100` (100 cr), `collect-domain-content-ideas.php` (0 cr), `collect-competitor-keywords.php --limit=15` (15 cr). Total ~115 credits. `validate-domain-level-data.php` passed (6/6 files OK). Regenerated CONTENT_BACKLOG.md (15 optimize, 20 opportunities, 0 ideas) and competitive-analysis-2026-Q1.md. **Next:** Run domain-level collection at least monthly; use CONTENT_BACKLOG for “optimize vs create” decisions; run `weekly-priority-refresh.php` weekly.

- **Pending audit + next steps (2026-02-08):** Regenerated DATA_FRESHNESS_REPORT, COLLECTION_HEALTH_DASHBOARD; ran `weekly-priority-refresh.php --limit=15` (GA4, GSC, priority, PRIORITY_DASHBOARD); regenerated CONTENT_BACKLOG. AUDIT_TODO updated. **Manual review completed 2026-02-08.** Optional: Tier 1 auto-refresh when credits allow (`check-data-freshness.php --tier=1 --max-age=7 --auto-refresh`).

- **Full-site backlog (2026-02-08):** Content backlog and content-gap reports now classify domain opportunities by **surface** (Tools, Comparison, Blog, Product, etc.). Section 2 split into **2a Already covered (optimize existing page)** and **2b Create new (content gap)** so "Create new" lists only true gaps (homepage/other). Validation script: `php v2/scripts/blog/validate-backlog-surfaces.php`. See [CONTENT_BACKLOG_WORKFLOW.md](CONTENT_BACKLOG_WORKFLOW.md).

- **Missing data fill (2026-02-08):** Ran collectors to fill all 79 previously missing files: 39× `collect-faq-research-data.php` (per post), 35× `collect-post-serp-features.php --limit=5` (per post), 10× `collect-post-search-intent.php` (per post). **Result:** Missing 0 | Fresh 352 | Stale 242 (unchanged). Domain-level validation 6/6 OK. `validate-data-collection.php` still reports 9 missing for placeholder/malformed slugs (e.g. `{slug}`, zeiterfassung-excel-*) — expected; no action. DATA_FRESHNESS_REPORT and COLLECTION_HEALTH_DASHBOARD regenerated; status HEALTHY.

## Immediate Next Steps

### 1. Content Expansion (High Priority)

**Expand Short Posts:**
- 6 Ratgeber posts below 800 words → Target: 1,200+ words
- 3 Lexikon posts below 800 words → Target: 1,200+ words

**Priority Order (updated 2026-02-11):**
1. ~~Dein Leitfaden für Arbeitsverträge + gratis Vorlage~~ ✅ ~2.200 words
2. ~~Was heißt eigentlich „Digitalisierung" für Restaurants?~~ ✅ ~1.700 words
3. ~~Die größten Fehler bei der Digitalisierung in der Gastronomie~~ ✅ ~1.693 words
4. ~~Lohnsteuerbescheinigung 2025~~ ✅ ~3.306 words
5. ~~Tarifverträge~~ ✅ ~1.168 words
6. ~~Personalfragebogen~~ ✅ ~1.713 words

**Short posts still to expand (below 800 words):**
- ~~minijob~~ ✅ 1.127 words (expanded 2026-02-11)
- ~~teilzeitarbeit~~ ✅ 1.204 words (expanded 2026-02-11)
- rufbereitschaft (516 words)
- corporate-social-responsibility (591 words)
- haccp (574 words)
- personalabteilung (557 words)

**Next action:** Start with **rufbereitschaft** (lexikon, 516 words) or **corporate-social-responsibility** (591 words). Target 1.200+ words. Use `run-post-improvement-pipeline.php` for data prep. Full strategy: [SHORT_POSTS_EXPANSION_PLAN.md](SHORT_POSTS_EXPANSION_PLAN.md).

### 2. Performance Optimization (Medium Priority)

**Image Optimization:**
- Convert all blog images to WebP format
- Optimize file sizes
- Add responsive srcset attributes
- Ensure lazy loading
- Add proper alt text

**Page Speed:**
- Minify CSS/JS
- Optimize HTML
- Implement caching
- Reduce render-blocking resources

**Core Web Vitals:**
- LCP < 2.5s
- FID < 100ms
- CLS < 0.1

### 3. Automation Setup (Medium Priority)

**Cron Jobs:**
- Set up weekly quality checks (Monday mornings)
- Set up weekly priority refresh (Monday mornings)
- Set up monthly SISTRIX collection (with credit management)

**Monitoring:**
- Set up FAQ performance tracking
- Set up internal link click tracking
- Set up schema performance monitoring

### 4. Documentation Cleanup (Low Priority)

**Archive Old Files:**
- Move old STATUS files to archive/
- Consolidate NEXT_STEPS files
- Archive completed implementation reports

**Update Documentation:**
- ~~Update Cursor rules (add blog-monitoring.mdc)~~ ✅ Done
- ~~Create monitoring runbook~~ ✅ Done (AUDIT_RUNBOOK.md)
- Update process documentation (as needed)

### 5. Analytics Enhancement (Low Priority)

**Enhanced Tracking:**
- FAQ engagement tracking
- Internal link click tracking
- Schema performance tracking
- Custom dashboards

**Reporting:**
- Monthly performance reports
- FAQ performance reports
- Featured snippets tracking
- Priority tracking reports

## Long-Term Goals

### Quarterly Tasks
- Competitive analysis (report: `generate-competitive-analysis.php`)
- Content gap analysis
- Keyword opportunity research
- SERP feature analysis

### Ongoing Maintenance
- **Weekly:** `weekly-priority-refresh.php`; quality check (optional email).
- **Monthly (or bi-weekly):** Domain-level collection — `collect-domain-opportunities.php`, `collect-domain-content-ideas.php`, `collect-competitor-keywords.php`; then `generate-content-backlog.php` and optionally `generate-competitive-analysis.php`. Run `validate-domain-level-data.php` to confirm freshness.
- Quarterly comprehensive audits.

## Automation Scripts Ready

All scripts are ready for cron setup:

```bash
# Weekly quality check (Monday 9 AM)
0 9 * * 1 cd /path/to/landingpage && php v2/scripts/blog/weekly-quality-check.php --email

# Weekly priority refresh (Monday 10 AM)
0 10 * * 1 cd /path/to/landingpage && php v2/scripts/blog/weekly-priority-refresh.php

# Weekly or monthly: domain visibility (1 SISTRIX credit, 7-day cache)
# php v2/scripts/blog/check-sistrix-credits.php  # optional pre-check (no cost)
# php v2/scripts/blog/collect-domain-visibilityindex.php

# Monthly SISTRIX collection (1st of month, 8 AM)
0 8 1 * * cd /path/to/landingpage && php v2/scripts/blog/pull-sistrix-data.php --monthly

# Monthly (optional): SEO action list for editorial use
# php v2/scripts/blog/generate-seo-action-list.php --limit=15
```

See [MONITORING_RUNBOOK.md](MONITORING_RUNBOOK.md) for domain visibility and [AUDIT_RUNBOOK.md](AUDIT_RUNBOOK.md) for SEO Action List.

## Resources

- **Scripts Guide:** [BLOG_SCRIPTS_USAGE_GUIDE.md](BLOG_SCRIPTS_USAGE_GUIDE.md)
- **Expansion Plan:** [SHORT_POSTS_EXPANSION_PLAN.md](SHORT_POSTS_EXPANSION_PLAN.md)
- **Status:** [FINAL_STATUS.md](FINAL_STATUS.md)
- **Improvements Summary:** [BLOG_IMPROVEMENTS_SUMMARY_2026.md](BLOG_IMPROVEMENTS_SUMMARY_2026.md)

## Other next-steps docs (reference)

Topic-specific or historical next-steps; for current priorities use this file above.

- [NEXT_STEPS.md](NEXT_STEPS.md)
- [BACKUP_NEXT_STEPS.md](BACKUP_NEXT_STEPS.md)
- [NEXT_STEPS_FAQ_REVIEW.md](NEXT_STEPS_FAQ_REVIEW.md)
- [SISTRIX_OPTIMIZATION_NEXT_STEPS.md](SISTRIX_OPTIMIZATION_NEXT_STEPS.md)
- [NEXT_STEPS_ACTION_PLAN.md](NEXT_STEPS_ACTION_PLAN.md)
- [FAQ_OPTIMIZATION_NEXT_STEPS.md](FAQ_OPTIMIZATION_NEXT_STEPS.md)
- [NEXT_STEPS_COMPOUND_PLURAL_LINKING.md](NEXT_STEPS_COMPOUND_PLURAL_LINKING.md)
- [NEXT_STEPS_AFTER_COLLECTION.md](NEXT_STEPS_AFTER_COLLECTION.md)
- [DATE_IMPLEMENTATION_NEXT_STEPS.md](DATE_IMPLEMENTATION_NEXT_STEPS.md)
- [NEXT_STEPS_EXTRACTION.md](NEXT_STEPS_EXTRACTION.md)
- [NEXT_STEPS_CONTEXT_AWARE_LINKING.md](NEXT_STEPS_CONTEXT_AWARE_LINKING.md)
- [NEXT_STEPS_MALFORMED_LINKS.md](NEXT_STEPS_MALFORMED_LINKS.md)
