AI Skill
seo-create
Last updated: 2026-05-17
> Template-based SEO page creation at scale. Template-first workflow: match existing template or create new one, then batch-produce pages with built-in qual
Quick Install
npx skills add seo-create
Template-Based SEO Page Creation
RULE: Template First, Always
Request received → Check template registry → Match? → Use it
→ No match? → CREATE template first
Template registry: ~/.claude/rules/seo-page-templates.md
Registered Templates (6 types)
| Type | Route | Reference Implementation | Template Spec |
|---|---|---|---|
| Alternatives | /alternatives/[slug] | app/[locale]/alternatives/claude-code-alternatives/page.tsx | rules/seo-alternatives-template.md |
| Compare | /compare/[x]-vs-[y] | app/[locale]/compare/claude-code-vs-cursor/page.tsx | (from reference) |
| Blog/Listicle | /blog/[slug] | app/[locale]/blog/cheapest-llm-api-2026/page.tsx | (from reference) |
| Use/Model | /use/[slug] | app/[locale]/use/[slug]/page.tsx | Auto-generated from catalog |
| SEO Landing | Various | Uses SeoPageLayout + buildSeoPageMeta() | rules/template-library.md |
| Integration | Mintlify MDX | documentation/ directory | rules/template-library.md |
Creation Workflow
Step 1: Identify Template
Read ~/.claude/rules/seo-page-templates.md
Match page type to registered template
Step 2: Prepare Data
// For alternatives pages:
const alternatives = [
{
name: string,
tagline: string,
pros: string[], // 3-4 items
cons: string[], // 2-3 items
pricing: string,
bestFor: string,
link: string | null // internal compare link
}
]
Step 3: Create Page
Apply template, filling in:
- Metadata (title, description, OG, Twitter, canonical, hreflang)
- JSON-LD structured data
- Content sections (all sections from template, in order)
- Related Resources (6 internal link cards)
- SeoBottomCta with unique utmCampaign
Step 4: Quality Gates (EVERY page, no exceptions)
Content Quality
- [ ] Citability: first paragraph directly answers the query (40-60 words)
- [ ] Optimal AI citation length: key paragraphs 134-167 words
- [ ] Unique content ≥ 300 words (programmatic SEO penalty prevention)
- [ ] At least 1 unique data point per page
- [ ] Tables for comparisons (AI parses tables better than prose)
- [ ] FAQ with 4-5 questions matching real search queries
Technical SEO
- [ ] Title ≤ 60 chars, contains: primary keyword + number + year
- [ ] Description ≤ 155 chars, first 60 chars have value proposition
- [ ] Canonical URL via
buildCanonicalUrl() - [ ] Alternate languages via
buildAlternateLanguages() - [ ] OG image 1200x630 via
/api/og/page - [ ] FAQPage JSON-LD schema (matches FAQ section content)
- [ ] BreadcrumbList (via breadcrumb component)
Internal Linking
- [ ] Breadcrumb navigation (Home → Category → Page)
- [ ] Related Resources: 6 cards (2 same-type + 1 compare + 1 pricing + 2 /use/)
- [ ] In-body links: ≥ 3 links to other pages
- [ ] SeoBottomCta with utmCampaign
Design Compliance
- [ ] CTA:
bg-[#d97757] hover:bg-[#c6613f] - [ ] Page background:
bg-[#f7f6f2] - [ ] Zero purple/indigo/violet anywhere
- [ ] Hero CTA: "Get Started Free — $2 Credits"
- [ ] Trust signals: "No credit card needed · Set up in 30 seconds"
Step 5: Verify
cd ~/skillboss && pnpm typecheck 2>&1 | grep "[new-page-slug]"
cd ~/skillboss && pnpm build 2>&1 | grep "[new-page-slug]"
Step 6: i18n (auto-trigger after English done)
# If content page (blog/MDX):
npx tsx scripts/seo/translate-batch.ts --dir content/[path]/en --languages all
Batch Creation
For creating multiple pages at once:
- Read template once
- Prepare data for all pages
- Spawn parallel agents (3-5 per batch)
- Each agent creates 3-5 pages using the same template
- Verify all:
pnpm typecheck && pnpm build - Commit + push together
Creating New Template (when no match exists)
1. Define TypeScript interface for page data
- Define section list (ordered)
- Define type-specific SEO checklist
- Write first page as reference implementation
- Run quality gates on reference
- Register in seo-page-templates.md
- Update template-library.md index
- Batch-create remaining pages
Programmatic SEO at Scale
For /use/ pages and large batches:
- Source data from
public/api-catalog.json - Slug mapping in
lib/model-constants.ts - Thin content prevention: each page needs unique description + pricing + use cases
- Zapier benchmark: 1.3M keywords from integration pages
- Google penalty prevention: 300+ unique words per page, no mad-libs patterns