SEO Review
Systematic SEO audit for public-facing pages. Checks crawlability, indexability, on-page SEO, structured data, Core Web Vitals, and AI search readiness. Applies seo-engineer role for all steps.
Works standalone or as a follow-up skill called by docs skill, feature-dev skill, or bugfix skill.
1. Define Scope
Ask the user (or extract from parent workflow):
- Target pages: Specific URLs, page group, or entire site
- Environment: Local dev / staging / production
- Review type: Full audit / metadata only / structured data / performance / AI search
- Constraints: What must not change (URL structure, navigation, etc.)
2. Apply Roles
Apply seo-engineer role as primary role.
If implementation changes are needed, delegate to:
| Change Type |
Delegate To |
| Frontend code (meta tags, JSON-LD, components) |
frontend-engineer role |
| Content / copy improvements |
content-writer role |
| Server config (redirects, headers, robots.txt) |
devops-engineer role |
| Architecture changes (URL structure, routing) |
solution-architect role |
3. Baseline Audit
Run automated checks before making changes.
3a. Crawlability
Check the following (read project files or use browser/curl):
robots.txt — allows important pages, Sitemap: directive present
- XML sitemap — includes all indexable pages, excludes non-indexable
- No orphaned pages (all pages reachable via internal links)
- Navigation uses crawlable
<a href> links
- No crawl traps (infinite URL parameters, calendar widgets)
3b. Indexability
- No accidental
noindex on public pages
- Canonical tags point to correct URLs
- No canonical conflicts (canonical vs redirects vs internal links)
- Pages return 200 status codes (check for soft 404s)
- Critical content rendered server-side (SSR/SSG), not client-only
3c. On-Page SEO
For each target page:
| Element |
Check |
| Title tag |
Unique, descriptive, matches page intent |
| Meta description |
Unique, compelling, relevant |
| H1 |
Exactly one per page, matches topic |
| Heading hierarchy |
Logical H1→H2→H3 |
| Image alt text |
Descriptive for all meaningful images |
| Internal links |
Present, descriptive anchor text |
| Outbound links |
Qualified with rel attributes where needed |
3d. Structured Data
- JSON-LD present where applicable:
Organization / WebSite on homepage
Article / BlogPosting on blog posts
BreadcrumbList for navigation
FAQ where genuinely useful
Product, Review, HowTo where applicable
- Structured data matches visible page content (no misleading markup)
- Validate with Rich Results Test
3e. Core Web Vitals
| Metric |
Target |
Tool |
| LCP (Largest Contentful Paint) |
< 2.5s |
PageSpeed Insights |
| INP (Interaction to Next Paint) |
< 200ms |
PageSpeed Insights |
| CLS (Cumulative Layout Shift) |
< 0.1 |
PageSpeed Insights |
3f. Mobile Optimization
- Responsive design across viewports
- Tap targets ≥ 48×48px
- No horizontal scrolling
- Font size ≥ 16px body text
- No intrusive interstitials
3g. AI Search Readiness
- Pages crawlable and well-structured (SSR/SSG, semantic HTML)
- Content is clear, factual, and authoritative
- Structured data present and accurate
llms.txt present (optional, experimental — not a ranking factor)
- Pages indexed and snippet-eligible (prerequisite for AI features)
3h. GEO/AEO Audit
Apply geo-writer skill to audit extractability for AI engines (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews):
- Schema coverage —
Article or BlogPosting + Person with sameAs + Organization on blog pages; FAQPage where FAQ present; HowTo for tutorials; Product / Review on commercial pages. JSON-LD must mirror visible text (no marketing-only prose in schema).
- Answer-first structure — each H2/H3 opens with a self-contained 30-60 word answer. No buried ledes.
- Macro/meso/micro chunking — single H1, 5-9 H2 sections phrased as questions or topics, paragraphs 40-80 words, bold anchors every section.
- Entity clarity — canonical brand terms used verbatim, no pronoun drift, entity mentions in first 100 words.
- High-leverage formats — FAQ blocks (4-8 Q&A), comparison tables (2+ entities), HowTo steps (3-8 numbered actions) where natural.
- Freshness signals —
dateModified present and recent; datePublished set; content updated within the pillar's freshness window.
- Citation-ready — stats/claims attributed to named sources with outbound links where appropriate.
The geo-content rule enforces these for public-facing text. Use pre-publish-checklist.md from geo-writer skill for the full checklist.
4. Present Findings
Compile audit results:
## SEO Audit Report
### Pages Reviewed: [count]
### Critical Issues (blocking indexing/ranking)
- [ ] [issue] — [affected page] — [fix]
### Warnings (affecting quality/performance)
- [ ] [issue] — [affected page] — [fix]
### Opportunities (improvements)
- [ ] [opportunity] — [affected page] — [recommendation]
### Scores
- Crawlability: [OK / issues found]
- Indexability: [OK / issues found]
- On-Page SEO: [OK / issues found]
- Structured Data: [OK / missing / errors]
- Core Web Vitals: [LCP: Xs, INP: Xms, CLS: X.XX]
- Mobile: [OK / issues found]
- AI Search: [OK / opportunities]
Wait for user to review and approve which fixes to implement.
5. Implement Fixes
For approved fixes:
- Metadata changes (title, description, OG tags) — implement directly or delegate to
frontend-engineer role
- Structured data (JSON-LD) — implement directly or delegate to
frontend-engineer role
- Content changes — delegate to
content-writer role
- Server config (redirects, headers) — delegate to
devops-engineer role
- Performance fixes (image optimization, lazy loading, critical CSS) — delegate to
frontend-engineer role
Follow seo-engineer role standards for all changes. No black-hat techniques.
6. Verify
Re-run relevant checks from Step 3 for changed pages:
7. Summary
## SEO Review Summary
- **Scope**: [pages/environment reviewed]
- **Issues found**: [critical: X, warnings: X, opportunities: X]
- **Fixes applied**:
- [fix 1] — [page]
- [fix 2] — [page]
- **Delegated to**: [roles involved]
- **Verification**: [pass/fail per check]
- **Monitoring**: [what to watch — Search Console, PageSpeed, etc.]
- **Follow-ups**: [items for future attention]
Integration
- Roles:
seo-engineer role (primary), frontend-engineer role (implementation), content-writer role (content fixes)
- Skills:
geo-writer skill (GEO/AEO audit — step 3h), humanizer skill (applied when content fixes are needed)
- Rules:
geo-content (enforces GEO structure and schema on public-facing text), humanize-content (enforces humanizer pass)
- Called by:
feature-dev skill (SEO-relevant features), docs skill (public content)
1---2name: seo-review-23description: SEO review workflow — technical SEO audit, meta tags, structured data validation, Core Web Vitals, crawlability, indexability, AI search readiness. Applies SEO Engineer role. Use standalone or as part of feature/docs workflows.4---56# SEO Review78Systematic SEO audit for public-facing pages. Checks crawlability, indexability, on-page SEO, structured data, Core Web Vitals, and AI search readiness. Applies `seo-engineer` role for all steps.910Works standalone or as a follow-up skill called by `docs` skill, `feature-dev` skill, or `bugfix` skill.1112## 1. Define Scope1314Ask the user (or extract from parent workflow):1516- **Target pages**: Specific URLs, page group, or entire site17- **Environment**: Local dev / staging / production18- **Review type**: Full audit / metadata only / structured data / performance / AI search19- **Constraints**: What must not change (URL structure, navigation, etc.)2021## 2. Apply Roles2223Apply `seo-engineer` role as primary role.2425If implementation changes are needed, delegate to:2627| Change Type | Delegate To |28|---|---|29| Frontend code (meta tags, JSON-LD, components) | `frontend-engineer` role |30| Content / copy improvements | `content-writer` role |31| Server config (redirects, headers, robots.txt) | `devops-engineer` role |32| Architecture changes (URL structure, routing) | `solution-architect` role |3334## 3. Baseline Audit3536Run automated checks before making changes.3738### 3a. Crawlability3940Check the following (read project files or use browser/curl):4142- `robots.txt` — allows important pages, `Sitemap:` directive present43- XML sitemap — includes all indexable pages, excludes non-indexable44- No orphaned pages (all pages reachable via internal links)45- Navigation uses crawlable `<a href>` links46- No crawl traps (infinite URL parameters, calendar widgets)4748### 3b. Indexability4950- No accidental `noindex` on public pages51- Canonical tags point to correct URLs52- No canonical conflicts (canonical vs redirects vs internal links)53- Pages return 200 status codes (check for soft 404s)54- Critical content rendered server-side (SSR/SSG), not client-only5556### 3c. On-Page SEO5758For each target page:5960| Element | Check |61|---|---|62| Title tag | Unique, descriptive, matches page intent |63| Meta description | Unique, compelling, relevant |64| H1 | Exactly one per page, matches topic |65| Heading hierarchy | Logical H1→H2→H3 |66| Image alt text | Descriptive for all meaningful images |67| Internal links | Present, descriptive anchor text |68| Outbound links | Qualified with `rel` attributes where needed |6970### 3d. Structured Data7172- JSON-LD present where applicable:73 - `Organization` / `WebSite` on homepage74 - `Article` / `BlogPosting` on blog posts75 - `BreadcrumbList` for navigation76 - `FAQ` where genuinely useful77 - `Product`, `Review`, `HowTo` where applicable78- Structured data matches visible page content (no misleading markup)79- Validate with [Rich Results Test](https://search.google.com/test/rich-results)8081### 3e. Core Web Vitals8283| Metric | Target | Tool |84|---|---|---|85| LCP (Largest Contentful Paint) | < 2.5s | PageSpeed Insights |86| INP (Interaction to Next Paint) | < 200ms | PageSpeed Insights |87| CLS (Cumulative Layout Shift) | < 0.1 | PageSpeed Insights |8889### 3f. Mobile Optimization9091- Responsive design across viewports92- Tap targets ≥ 48×48px93- No horizontal scrolling94- Font size ≥ 16px body text95- No intrusive interstitials9697### 3g. AI Search Readiness9899- Pages crawlable and well-structured (SSR/SSG, semantic HTML)100- Content is clear, factual, and authoritative101- Structured data present and accurate102- `llms.txt` present (optional, experimental — not a ranking factor)103- Pages indexed and snippet-eligible (prerequisite for AI features)104105### 3h. GEO/AEO Audit106107Apply `geo-writer` skill to audit extractability for AI engines (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews):108109- **Schema coverage** — `Article` or `BlogPosting` + `Person` with `sameAs` + `Organization` on blog pages; `FAQPage` where FAQ present; `HowTo` for tutorials; `Product` / `Review` on commercial pages. JSON-LD must mirror visible text (no marketing-only prose in schema).110- **Answer-first structure** — each H2/H3 opens with a self-contained 30-60 word answer. No buried ledes.111- **Macro/meso/micro chunking** — single H1, 5-9 H2 sections phrased as questions or topics, paragraphs 40-80 words, bold anchors every section.112- **Entity clarity** — canonical brand terms used verbatim, no pronoun drift, entity mentions in first 100 words.113- **High-leverage formats** — FAQ blocks (4-8 Q&A), comparison tables (2+ entities), HowTo steps (3-8 numbered actions) where natural.114- **Freshness signals** — `dateModified` present and recent; `datePublished` set; content updated within the pillar's freshness window.115- **Citation-ready** — stats/claims attributed to named sources with outbound links where appropriate.116117The `geo-content` rule enforces these for public-facing text. Use `pre-publish-checklist.md` from `geo-writer` skill for the full checklist.118119## 4. Present Findings120121Compile audit results:122123```124## SEO Audit Report125126### Pages Reviewed: [count]127128### Critical Issues (blocking indexing/ranking)129- [ ] [issue] — [affected page] — [fix]130131### Warnings (affecting quality/performance)132- [ ] [issue] — [affected page] — [fix]133134### Opportunities (improvements)135- [ ] [opportunity] — [affected page] — [recommendation]136137### Scores138- Crawlability: [OK / issues found]139- Indexability: [OK / issues found]140- On-Page SEO: [OK / issues found]141- Structured Data: [OK / missing / errors]142- Core Web Vitals: [LCP: Xs, INP: Xms, CLS: X.XX]143- Mobile: [OK / issues found]144- AI Search: [OK / opportunities]145```146147Wait for user to review and approve which fixes to implement.148149## 5. Implement Fixes150151For approved fixes:1521531. **Metadata changes** (title, description, OG tags) — implement directly or delegate to `frontend-engineer` role1542. **Structured data** (JSON-LD) — implement directly or delegate to `frontend-engineer` role1553. **Content changes** — delegate to `content-writer` role1564. **Server config** (redirects, headers) — delegate to `devops-engineer` role1575. **Performance fixes** (image optimization, lazy loading, critical CSS) — delegate to `frontend-engineer` role158159Follow `seo-engineer` role standards for all changes. No black-hat techniques.160161## 6. Verify162163Re-run relevant checks from Step 3 for changed pages:164165- [ ] Fixed issues no longer present166- [ ] No new issues introduced167- [ ] Structured data validates (Rich Results Test)168- [ ] Pages still indexable (no accidental noindex)169- [ ] Core Web Vitals within targets170- [ ] No broken links introduced171172## 7. Summary173174```175## SEO Review Summary176- **Scope**: [pages/environment reviewed]177- **Issues found**: [critical: X, warnings: X, opportunities: X]178- **Fixes applied**:179 - [fix 1] — [page]180 - [fix 2] — [page]181- **Delegated to**: [roles involved]182- **Verification**: [pass/fail per check]183- **Monitoring**: [what to watch — Search Console, PageSpeed, etc.]184- **Follow-ups**: [items for future attention]185```186187## Integration188189- **Roles**: `seo-engineer` role (primary), `frontend-engineer` role (implementation), `content-writer` role (content fixes)190- **Skills**: `geo-writer` skill (GEO/AEO audit — step 3h), `humanizer` skill (applied when content fixes are needed)191- **Rules**: `geo-content` (enforces GEO structure and schema on public-facing text), `humanize-content` (enforces humanizer pass)192- **Called by**: `feature-dev` skill (SEO-relevant features), `docs` skill (public content)