# Blog Improvement Efficiency Guide

**Last Updated:** 2026-02-11  
**Purpose:** Single reference for parallelization, batch vs single-post pipelines, outline best practices, FAQ workflow, and validation order to speed up the improvement process while maintaining quality.

## Overview

This guide consolidates efficiency optimizations for the blog post improvement workflow. Use it when improving single posts or batches, and when setting up outlines and FAQs.

## Parallelization Options

### GA4 + GSC (Parallel)

Run both collectors concurrently instead of sequentially:

```bash
php v2/scripts/blog/run-parallel-collection.php --post=SLUG --category=CATEGORY
```

**When to use:** Single-post improvement when both GA4 and GSC are needed. Pipeline uses this by default.

**Skip options:** `--skip-ga4` or `--skip-gsc` to run only one.

### Analysis Scripts (Parallel)

Run content, SEO, and links analysis concurrently:

```bash
php v2/scripts/blog/run-parallel-analyze.php --post=SLUG --category=CATEGORY
```

**When to use:** Single-post improvement when analysis is needed. Pipeline uses this by default.

## Batch vs Single-Post Pipeline

### Single Post (Recommended Entry Point)

```bash
php v2/scripts/blog/run-post-improvement-pipeline.php --post=SLUG --category=CATEGORY
```

**What it runs (in order):**

1. Backup
2. GA4 + GSC (parallel)
3. Derive keywords
4. SISTRIX keywords
5. PAA questions
6. FAQ research
7. SERP features
8. Competitor analysis
9. Competitor depth
10. Analysis (content + SEO + links, parallel)
11. Regenerate docs
12. SERP skeleton
13. Pre-content checklist

**Skip options:** `--skip-backup`, `--skip-ga4`, `--skip-gsc`, `--skip-derive`, `--skip-sistrix`, `--skip-competitor`, `--skip-analyze`, `--skip-docs`

### Multiple Posts (Batch)

When improving multiple posts, run SISTRIX collection in batch for efficiency:

```bash
php v2/scripts/blog/run-sistrix-collection-batch.php [--batch-size=N] [--concurrent=N]
```

**When to use:** Before starting manual review on several posts. Batch collects keywords, PAA, SERP features, competitor analysis across posts with cross-post keyword batching and parallel PAA collection.

**Then:** Run single-post pipeline per post with `--skip-sistrix` to avoid duplicate API calls.

## Outline Best Practices

### Data-Driven Checklist

Before writing content, fill the data-driven sections in CONTENT_OUTLINE.md:

- **PAA coverage matrix** – Assign each PAA question to H2 or FAQ
- **Competitor H2 mapping** – Ensure outline covers all H2s from top 3 competitors
- **GSC query alignment** – Map top 5 GSC queries to H2 or FAQ
- **Content gap checklist** – From competitive-depth-analysis.md
- **Unique value** – What we do better (format, depth, examples, freshness)

### Outline Expansion Suggestions

Generate suggested H2s/FAQs from data:

```bash
php v2/scripts/blog/generate-outline-expansion-suggestions.php --post=SLUG --category=CATEGORY
```

**Output:** `data/outline-suggestions.md` – copy relevant items into CONTENT_OUTLINE.md.

### Section Briefs

Generate per-section briefs (target words, key points, formats, PAA) before writing:

```bash
php v2/scripts/blog/generate-section-briefs.php --post=SLUG --category=CATEGORY
```

**Output:** `data/section-briefs.md` – copy into CONTENT_OUTLINE or use as reference. See [CONTENT_CREATION_WORKFLOW_2026.md](CONTENT_CREATION_WORKFLOW_2026.md).

### Outline-First Content Creation

- **Section-by-section drafting:** Write each H2 to full depth from outline before next. No incremental word-count chasing.
- **Prohibited:** Adding filler to reach target; "add a paragraph here" without outline-driven purpose.
- **Single apply:** Write complete HTML; apply via `update-post-content.php` when ready.

### Validation Order

1. `validate-improvement-readiness.php` – Phase gate before content
2. `validate-content-outline-quality.php` – Outline quality and coverage
3. (Content creation)
4. `validate-section-depth.php`, `validate-content-completeness.php` – After content apply, before finalizing
5. `validate-faq-schema.php`, `check-h2-faq-overlap.php` – Before finalizing FAQs

## FAQ Workflow Summary

### Order (CRITICAL)

1. **PAA before FAQ research** – Run `collect-post-paa-questions.php` before `collect-faq-research-data.php`. Serp-features returns PAA count only; paa-questions.json has actual question text.
2. `collect-faq-research-data.php`
3. `generate-faq-questions.php`
4. `generate-faq-answers-optimized.php --use-ai`
5. Manual review (use checklist)
6. **Overlap check** – Run `check-h2-faq-overlap.php` before add-faqs-to-post (similarity < 0.65)
7. `add-faqs-to-post.php`
8. `validate-faq-schema.php`

### Optional Pre-Check

```bash
php v2/scripts/blog/validate-faq-readiness.php --post=SLUG --category=CATEGORY [--strict]
```

Exits 1 with `--strict` if PAA is missing; use before generate-faq-questions when unsure.

## Quality Over Word Count

- **Target** from competitive-depth; focus on comprehensiveness, examples, and unique value
- **Word count** is a guideline, not a ceiling
- **Checklist:** All PAA addressed, all competitor topics covered, examples/tables where competitors have them, definition in first 20%, no thin sections

See [CONTENT_DEPTH_GUIDELINES.md](CONTENT_DEPTH_GUIDELINES.md) "Going Beyond Word Count".

## References

- [CONTENT_CREATION_WORKFLOW_2026.md](CONTENT_CREATION_WORKFLOW_2026.md) – Outline-first, section-by-section drafting
- [BLOG_IMPROVEMENT_QUICK_REFERENCE.md](BLOG_IMPROVEMENT_QUICK_REFERENCE.md) – One-page commands
- [MANUAL_REVIEW_RESUME_RUNBOOK.md](MANUAL_REVIEW_RESUME_RUNBOOK.md) – Full runbook
- [FAQ_CREATION_WORKFLOW_2026.md](FAQ_CREATION_WORKFLOW_2026.md) – FAQ workflow
- [DATA_COLLECTION_SCRIPTS_INVENTORY.md](DATA_COLLECTION_SCRIPTS_INVENTORY.md) – Script inventory
