creo-seo-content — Next.js content quality specialist
Content-specific SEO auditor. Runs as standalone or as the Phase 2 delegate of creo-seo. Scores each page on 5 content dimensions, detects AI-generated patterns, maps search intent, scores opportunity, and produces rewrite priorities with before/after examples.
Commands
| Command |
Purpose |
/creo seo-content audit <url> |
Full content audit on a single URL or a list |
/creo seo-content humanity <url> |
Humanity score only (AI-pattern detection) |
/creo seo-content intent <url or keyword> |
Search intent classification |
/creo seo-content linking <url> |
Internal linking audit |
/creo seo-content rewrite <url> |
Generate rewrite priorities with before/after |
/creo seo-content gate <mdx-path> |
Publish gate — pass/fail score + reasons |
Scoring
Composite 0–100 per page:
Content_Quality =
(Humanity × 0.30) +
(Specificity × 0.25) +
(Structure × 0.20) +
(SEO_Compliance × 0.15) +
(Readability × 0.10)
Publish threshold: ≥ 80 with zero Critical issues.
Audit flow
- Load project profile from
.claude/skills/creo-seo/creo-seo-{project_id}.md (shared with creo-seo skill). Fall back to fresh scan if missing.
- Fetch page content — WebFetch for live URLs, Read for local MDX/TSX files.
- Normalize text — strip HTML, extract main content, skip nav/footer.
- Score 5 dimensions per
references/content-quality-rubric.md (or shared ref in ../creo-seo/references/).
- AI-pattern sweep per
references/ai-pattern-detection.md — count phrases, vague words, boosters.
- Structure analysis — H1/H2/H3 hierarchy, paragraph lengths, table/list presence.
- Citability check per
../creo-seo/references/geo-citability.md — passages in 134–167 word range, 5-dimension scoring.
- Intent classification — informational / navigational / transactional / commercial investigation.
- Internal linking audit per
../creo-seo/references/internal-linking-recipe.md — count, anchors, cluster fit.
- Output per-page report + rewrite priorities.
Search intent classification
4-class system:
| Intent |
Keyword signals |
SERP features |
| Informational |
what, why, how, guide, tutorial, tips, definition |
featured snippet, knowledge graph, PAA, video, images |
| Navigational |
login, sign in, website, dashboard, account, brand names |
brand knowledge panel |
| Transactional |
buy, purchase, pricing, free trial, coupon, order, download |
shopping results, local pack, ads |
| Commercial investigation |
best, review, vs, compare, alternative, similar, top |
carousel, comparison tables, lists |
Use intent to route:
- Informational → aim for citability + structured answers
- Commercial investigation → comparison tables, feature matrices
- Transactional → strong CTAs, trust signals, not just SEO
- Navigational → avoid SEO cannibalization of branded queries
Opportunity scoring (when GSC/keyword data available)
8-factor weighted score 0–100:
Opportunity =
Volume(25%) + Position(20%) + Intent(20%) + Competition(15%)
+ Cluster(10%) + CTR(5%) + Freshness(5%) + Trend(5%)
Priority tiers:
- CRITICAL ≥ 80
- HIGH ≥ 65
- MEDIUM ≥ 45
- LOW ≥ 25
- SKIP < 25
Use with seo-google extension for live GSC data.
Writing patterns to enforce
Direct-answer opening (for AI citability)
Every H2 section must open with a 1–2 sentence direct answer before expanding. Pattern: "X is Y. It does Z."
Key Takeaways block (after intro, before first H2)
3–5 bullets of actual conclusions (not table of contents). AI summaries pull from here.
Mini-story injection
2–3 per long-form piece. Structure: named person + dates + outcome.
YouTube embed
≥ 1 relevant video per long-form article for multi-modal signal.
Content quality gates by page type
| Page type |
Min words |
Target |
Uniqueness |
| Homepage |
500 |
800–1200 |
N/A |
| Service page |
800 |
1200–1800 |
80%+ |
| Blog post |
1500 |
2000–2500 |
60%+ |
| Product page |
300 |
500–800 |
Per-SKU |
| Location page |
500 |
600–800 |
60%+ |
| Pricing |
400 |
600–900 |
N/A |
Reference library
Loaded on demand:
| File |
Purpose |
references/search-intent.md |
4-class intent system with signals |
references/opportunity-scoring.md |
8-factor content prioritization |
references/content-playbook.md |
Writing patterns (direct-answer, mini-stories, takeaways) |
references/rewrite-templates.md |
Before/after examples for common patterns |
../creo-seo/references/content-quality-rubric.md |
Shared 5-dim scoring |
../creo-seo/references/ai-pattern-detection.md |
Shared AI phrase/vague-word lists |
../creo-seo/references/geo-citability.md |
Shared citability rubric |
../creo-seo/references/internal-linking-recipe.md |
Shared linking rules |
Report output
Save to {reports_path}/seo-content-{YYYYMMDD}-{HHMM}.md. Format:
# Content audit — {url}
**Composite score:** 68/100 (C)
**Publish status:** needs rework
**Intent:** commercial investigation (primary), informational (secondary)
**Opportunity score:** 72/100 (HIGH)
## Dimension breakdown
| Dimension | Score | Notes |
|-----------|------:|-------|
| Humanity | 58 | 12 AI phrases, 18 vague words in 1800w |
| Specificity | 62 | 2 stats only, no sources |
| Structure | 80 | Good H2s, paragraphs slightly long |
| SEO compliance | 75 | Keyword missing from first 100 words |
| Readability | 70 | Flesch 62, avg sentence 24 words |
## AI pattern flags (12 instances)
- "in today's digital world" — line 14
- "leverage" — line 28, 47
- ...
## Rewrite priorities (ranked by impact)
### 1. Opening paragraph — humanity + citability
BEFORE:
> {current opening}
AFTER:
> {rewritten opening with definition, stat, source}
### 2. Section 3 — specificity
...
## Internal linking gaps
- 2 of 3–5 links (below minimum)
- Missing pillar reference to /guide/podcast-hosting
- Orphan: 0 inbound links from other posts
## Next steps
1. Apply top 3 rewrites (est. score 68 → 82)
2. Add 1–2 internal links to pillar + related
3. Add 3 stats with citations to sections 2, 4, 6
Parallel execution
When called by creo-seo as part of /creo seo audit, run in parallel with Phase 3 + Phase 4. When called standalone, serial execution is fine.
Quality gates
- Every rewrite priority includes BEFORE + AFTER
- AI phrase flags are line-numbered
- Intent + opportunity scoring only fires when data is available; otherwise skip
- Reports saved to disk
- Scoring must be reproducible from refs (no magic constants in prose)
1---2name: creo-seo-content3description: Content-focused SEO audit for Next.js apps. Deep dive into E-E-A-T, AI-generated content detection (26 phrases + 24 vague quantifiers), humanity/specificity/structure scoring, search intent detection, opportunity scoring, internal linking audit, and citability-ready rewrite priorities. Complements creo-seo (which covers technical, build, live, schema) by focusing exclusively on content quality. Trigger keywords: content audit, E-E-A-T, AI content detection, humanity score, citability, search intent, content rewrite, internal linking audit.4---56# creo-seo-content — Next.js content quality specialist78Content-specific SEO auditor. Runs as standalone or as the Phase 2 delegate of `creo-seo`. Scores each page on 5 content dimensions, detects AI-generated patterns, maps search intent, scores opportunity, and produces rewrite priorities with before/after examples.910## Commands1112| Command | Purpose |13|---------|---------|14| `/creo seo-content audit <url>` | Full content audit on a single URL or a list |15| `/creo seo-content humanity <url>` | Humanity score only (AI-pattern detection) |16| `/creo seo-content intent <url or keyword>` | Search intent classification |17| `/creo seo-content linking <url>` | Internal linking audit |18| `/creo seo-content rewrite <url>` | Generate rewrite priorities with before/after |19| `/creo seo-content gate <mdx-path>` | Publish gate — pass/fail score + reasons |2021## Scoring2223Composite 0–100 per page:2425```26Content_Quality =27 (Humanity × 0.30) +28 (Specificity × 0.25) +29 (Structure × 0.20) +30 (SEO_Compliance × 0.15) +31 (Readability × 0.10)32```3334Publish threshold: ≥ 80 with zero Critical issues.3536## Audit flow37381. **Load project profile** from `.claude/skills/creo-seo/creo-seo-{project_id}.md` (shared with creo-seo skill). Fall back to fresh scan if missing.392. **Fetch page content** — WebFetch for live URLs, Read for local MDX/TSX files.403. **Normalize text** — strip HTML, extract main content, skip nav/footer.414. **Score 5 dimensions** per `references/content-quality-rubric.md` (or shared ref in `../creo-seo/references/`).425. **AI-pattern sweep** per `references/ai-pattern-detection.md` — count phrases, vague words, boosters.436. **Structure analysis** — H1/H2/H3 hierarchy, paragraph lengths, table/list presence.447. **Citability check** per `../creo-seo/references/geo-citability.md` — passages in 134–167 word range, 5-dimension scoring.458. **Intent classification** — informational / navigational / transactional / commercial investigation.469. **Internal linking audit** per `../creo-seo/references/internal-linking-recipe.md` — count, anchors, cluster fit.4710. **Output** per-page report + rewrite priorities.4849## Search intent classification50514-class system:5253| Intent | Keyword signals | SERP features |54|--------|-----------------|---------------|55| **Informational** | what, why, how, guide, tutorial, tips, definition | featured snippet, knowledge graph, PAA, video, images |56| **Navigational** | login, sign in, website, dashboard, account, brand names | brand knowledge panel |57| **Transactional** | buy, purchase, pricing, free trial, coupon, order, download | shopping results, local pack, ads |58| **Commercial investigation** | best, review, vs, compare, alternative, similar, top | carousel, comparison tables, lists |5960Use intent to route:61- Informational → aim for citability + structured answers62- Commercial investigation → comparison tables, feature matrices63- Transactional → strong CTAs, trust signals, not just SEO64- Navigational → avoid SEO cannibalization of branded queries6566## Opportunity scoring (when GSC/keyword data available)67688-factor weighted score 0–100:6970```71Opportunity =72 Volume(25%) + Position(20%) + Intent(20%) + Competition(15%)73 + Cluster(10%) + CTR(5%) + Freshness(5%) + Trend(5%)74```7576Priority tiers:77- CRITICAL ≥ 8078- HIGH ≥ 6579- MEDIUM ≥ 4580- LOW ≥ 2581- SKIP < 258283Use with `seo-google` extension for live GSC data.8485## Writing patterns to enforce8687### Direct-answer opening (for AI citability)8889Every H2 section must open with a 1–2 sentence direct answer before expanding. Pattern: **"X is Y. It does Z."**9091### Key Takeaways block (after intro, before first H2)92933–5 bullets of actual conclusions (not table of contents). AI summaries pull from here.9495### Mini-story injection96972–3 per long-form piece. Structure: named person + dates + outcome.9899### YouTube embed100101≥ 1 relevant video per long-form article for multi-modal signal.102103## Content quality gates by page type104105| Page type | Min words | Target | Uniqueness |106|-----------|----------:|-------:|-----------:|107| Homepage | 500 | 800–1200 | N/A |108| Service page | 800 | 1200–1800 | 80%+ |109| Blog post | 1500 | 2000–2500 | 60%+ |110| Product page | 300 | 500–800 | Per-SKU |111| Location page | 500 | 600–800 | 60%+ |112| Pricing | 400 | 600–900 | N/A |113114## Reference library115116Loaded on demand:117118| File | Purpose |119|------|---------|120| `references/search-intent.md` | 4-class intent system with signals |121| `references/opportunity-scoring.md` | 8-factor content prioritization |122| `references/content-playbook.md` | Writing patterns (direct-answer, mini-stories, takeaways) |123| `references/rewrite-templates.md` | Before/after examples for common patterns |124| `../creo-seo/references/content-quality-rubric.md` | Shared 5-dim scoring |125| `../creo-seo/references/ai-pattern-detection.md` | Shared AI phrase/vague-word lists |126| `../creo-seo/references/geo-citability.md` | Shared citability rubric |127| `../creo-seo/references/internal-linking-recipe.md` | Shared linking rules |128129## Report output130131Save to `{reports_path}/seo-content-{YYYYMMDD}-{HHMM}.md`. Format:132133```markdown134# Content audit — {url}135136**Composite score:** 68/100 (C)137**Publish status:** needs rework138**Intent:** commercial investigation (primary), informational (secondary)139**Opportunity score:** 72/100 (HIGH)140141## Dimension breakdown142| Dimension | Score | Notes |143|-----------|------:|-------|144| Humanity | 58 | 12 AI phrases, 18 vague words in 1800w |145| Specificity | 62 | 2 stats only, no sources |146| Structure | 80 | Good H2s, paragraphs slightly long |147| SEO compliance | 75 | Keyword missing from first 100 words |148| Readability | 70 | Flesch 62, avg sentence 24 words |149150## AI pattern flags (12 instances)151- "in today's digital world" — line 14152- "leverage" — line 28, 47153- ...154155## Rewrite priorities (ranked by impact)156### 1. Opening paragraph — humanity + citability157158BEFORE:159> {current opening}160161AFTER:162> {rewritten opening with definition, stat, source}163164### 2. Section 3 — specificity165...166167## Internal linking gaps168- 2 of 3–5 links (below minimum)169- Missing pillar reference to /guide/podcast-hosting170- Orphan: 0 inbound links from other posts171172## Next steps1731. Apply top 3 rewrites (est. score 68 → 82)1742. Add 1–2 internal links to pillar + related1753. Add 3 stats with citations to sections 2, 4, 6176```177178## Parallel execution179180When called by `creo-seo` as part of `/creo seo audit`, run in parallel with Phase 3 + Phase 4. When called standalone, serial execution is fine.181182## Quality gates183184- Every rewrite priority includes BEFORE + AFTER185- AI phrase flags are line-numbered186- Intent + opportunity scoring only fires when data is available; otherwise skip187- Reports saved to disk188- Scoring must be reproducible from refs (no magic constants in prose)