Seoagent skill

Persistent SEO workflow for Claude Code — run a technical SEO audit, build a hub-and-spoke keyword strategy, write page-type-aware content briefs, and draft SEO-optimized articles, persisting every artifact to a .seoagent/ workspace so the work compounds across sessions.

by davila7·MIT license·★ 32,299 Stars on the repo·GitHub ↗

Use now

Files of Seoagent

davila7/main1 file shown
SKILL.md
Show the full text102 lines

SEOAgent

A persistent, repo-local SEO workflow. Unlike one-off SEO prompts that lose their context the moment the conversation ends, every artifact here is written to a .seoagent/ directory in the repo — so audits, strategy, briefs, and drafts accumulate across sessions instead of resetting each time.

When to Use This Skill

Use this skill when the user wants to:

  • Run a technical SEO audit of a site (meta tags, headings, internal links, schema, Core Web Vitals readiness, AI-search optimization)
  • Build a keyword strategy with topic clusters and an internal-linking structure
  • Write a content brief for a specific page or article
  • Draft an SEO-optimized article with full metadata and JSON-LD
  • Resume SEO work — read back prior audit findings, strategy, or the roadmap

Workspace Model

All work persists to .seoagent/ so it survives across sessions:

.seoagent/
  project.md           # domain, site type
  context.md           # business context, tone, banned topics
  audit/latest.md      # findings as [ ] / [x] checkboxes, tagged by severity
  strategy/clusters/   # hub-and-spoke topic clusters
  briefs/{slug}.md     # page-type-aware briefs
  content/{slug}.md    # drafts with SEO frontmatter + JSON-LD
  roadmap.md           # prioritized next steps
  changelog.md         # history of SEO work

Always read existing .seoagent/ files before acting, and write results back so the next session can build on them.

Workflow (5 phases)

1. Technical audit

Fetch the site's key pages and check each against the list below. Save findings to .seoagent/audit/latest.md as [ ] checkboxes the user can flip to [x] when fixed, each tagged critical | high | medium | low.

Critical / high

  • Indexability: no accidental noindex, no blocked paths in robots.txt, canonical present and self-referential
  • Title tag: present, unique, 50–60 chars, primary keyword near the front
  • Meta description: present, unique, 140–160 chars, compelling
  • One <h1> per page, descriptive; logical h2/h3 hierarchy
  • Internal links: no orphan pages; descriptive anchor text
  • Structured data: appropriate JSON-LD (Organization/Article/Product/FAQ) present and valid

Medium / low

  • Image alt text on content images
  • OpenGraph + Twitter card tags for social sharing
  • Core Web Vitals readiness (LCP image preloaded, no layout shift, reasonable JS)
  • Clean, keyword-relevant URL slugs
  • XML sitemap present and submitted; HTTPS enforced
2. Keyword strategy (hub-and-spoke)

Research the niche, then build topic clusters where each cluster has roles:

  • PILLAR — broad, high-value hub page
  • SUB_PILLAR — focused subtopics linking up to the pillar
  • LONG_TAIL — specific questions/niche queries linking up to sub-pillars

Internal links funnel authority up toward pillars. Save clusters to .seoagent/strategy/clusters/{slug}.md with the article table + link graph.

3. Content briefs (page-type-aware)

Different page types need different structures. Pick the protocol by type:

  • landing — conversion-focused, Product/Service JSON-LD
  • pillar — comprehensive overview, links to all sub-pillars
  • sub_pillar — focused subtopic depth
  • long_tail — direct answer to a specific query, FAQPage JSON-LD
  • programmatic — templated pages from a data set

Each brief gets a URL pattern, section outline (H2/H3), internal-link plan, JSON-LD plan, and a word-count target. Save to .seoagent/briefs/{slug}.md.

4. Draft articles

Write from the brief with complete SEO frontmatter:

  • meta_title, meta_description, canonical
  • OpenGraph + Twitter fields
  • JSON-LD: Article, plus FAQPage / HowTo where the content warrants it
  • An image plan (hero + inline) with alt text

Save to .seoagent/content/{slug}.md.

5. Monitor

Re-audit periodically, update .seoagent/roadmap.md with the next highest-leverage actions, and append what changed to .seoagent/changelog.md.

Answer-engine optimization (AEO/GEO)

Beyond classic SEO, structure content so AI assistants (ChatGPT, Claude, Perplexity, Google AI Overviews) can cite it: lead with a direct answer, use clear headings as questions, include comparison tables and concrete stats, and add FAQ/HowTo structured data. This makes pages citable in AI-generated answers, not just rankable.

Running the full agent

This skill captures the SEOAgent methodology. The full agent ships as a CLI that scaffolds the .seoagent/ workspace, installs an expanded reference library (per-page-type protocols, a JSON-LD library, an audit-check catalog), and adds an optional cloud loop:

# npm
npm install -g @seoagent-official/seoagent && seoagent init

# or the plugin marketplace (Claude Code or Codex)
/plugin marketplace add Baxter-Inc/seoagent-npm

Free and local by default (uses your agent's own tools; data stays in your repo). Optional cloud adds real keyword data, Google Search Console, and CMS publishing. MIT licensed — https://github.com/Baxter-Inc/seoagent-npm

1---
2name: SEOAgent
3description: Persistent SEO workflow for Claude Code — run a technical SEO audit, build a hub-and-spoke keyword strategy, write page-type-aware content briefs, and draft SEO-optimized articles, persisting every artifact to a .seoagent/ workspace so the work compounds across sessions. Use when auditing a site's technical SEO, planning a keyword/content strategy, writing content briefs, drafting SEO articles with structured data, or resuming SEO work started in a previous session.
4---
5 
6# SEOAgent
7 
8A persistent, repo-local SEO workflow. Unlike one-off SEO prompts that lose their context the moment the conversation ends, every artifact here is written to a `.seoagent/` directory in the repo — so audits, strategy, briefs, and drafts accumulate across sessions instead of resetting each time.
9 
10## When to Use This Skill
11 
12Use this skill when the user wants to:
13- Run a **technical SEO audit** of a site (meta tags, headings, internal links, schema, Core Web Vitals readiness, AI-search optimization)
14- Build a **keyword strategy** with topic clusters and an internal-linking structure
15- Write a **content brief** for a specific page or article
16- **Draft an SEO-optimized article** with full metadata and JSON-LD
17- **Resume** SEO work — read back prior audit findings, strategy, or the roadmap
18 
19## Workspace Model
20 
21All work persists to `.seoagent/` so it survives across sessions:
22 
23```
24.seoagent/
25 project.md # domain, site type
26 context.md # business context, tone, banned topics
27 audit/latest.md # findings as [ ] / [x] checkboxes, tagged by severity
28 strategy/clusters/ # hub-and-spoke topic clusters
29 briefs/{slug}.md # page-type-aware briefs
30 content/{slug}.md # drafts with SEO frontmatter + JSON-LD
31 roadmap.md # prioritized next steps
32 changelog.md # history of SEO work
33```
34 
35Always read existing `.seoagent/` files before acting, and write results back so the next session can build on them.
36 
37## Workflow (5 phases)
38 
39### 1. Technical audit
40Fetch the site's key pages and check each against the list below. Save findings to `.seoagent/audit/latest.md` as `[ ]` checkboxes the user can flip to `[x]` when fixed, each tagged `critical | high | medium | low`.
41 
42**Critical / high**
43- [ ] Indexability: no accidental `noindex`, no blocked paths in robots.txt, canonical present and self-referential
44- [ ] Title tag: present, unique, 50–60 chars, primary keyword near the front
45- [ ] Meta description: present, unique, 140–160 chars, compelling
46- [ ] One `<h1>` per page, descriptive; logical `h2`/`h3` hierarchy
47- [ ] Internal links: no orphan pages; descriptive anchor text
48- [ ] Structured data: appropriate JSON-LD (Organization/Article/Product/FAQ) present and valid
49 
50**Medium / low**
51- [ ] Image `alt` text on content images
52- [ ] OpenGraph + Twitter card tags for social sharing
53- [ ] Core Web Vitals readiness (LCP image preloaded, no layout shift, reasonable JS)
54- [ ] Clean, keyword-relevant URL slugs
55- [ ] XML sitemap present and submitted; HTTPS enforced
56 
57### 2. Keyword strategy (hub-and-spoke)
58Research the niche, then build topic clusters where each cluster has roles:
59- **PILLAR** — broad, high-value hub page
60- **SUB_PILLAR** — focused subtopics linking up to the pillar
61- **LONG_TAIL** — specific questions/niche queries linking up to sub-pillars
62 
63Internal links funnel authority *up* toward pillars. Save clusters to `.seoagent/strategy/clusters/{slug}.md` with the article table + link graph.
64 
65### 3. Content briefs (page-type-aware)
66Different page types need different structures. Pick the protocol by type:
67- **landing** — conversion-focused, Product/Service JSON-LD
68- **pillar** — comprehensive overview, links to all sub-pillars
69- **sub_pillar** — focused subtopic depth
70- **long_tail** — direct answer to a specific query, FAQPage JSON-LD
71- **programmatic** — templated pages from a data set
72 
73Each brief gets a URL pattern, section outline (H2/H3), internal-link plan, JSON-LD plan, and a word-count target. Save to `.seoagent/briefs/{slug}.md`.
74 
75### 4. Draft articles
76Write from the brief with complete SEO frontmatter:
77- `meta_title`, `meta_description`, `canonical`
78- OpenGraph + Twitter fields
79- JSON-LD: `Article`, plus `FAQPage` / `HowTo` where the content warrants it
80- An image plan (hero + inline) with alt text
81 
82Save to `.seoagent/content/{slug}.md`.
83 
84### 5. Monitor
85Re-audit periodically, update `.seoagent/roadmap.md` with the next highest-leverage actions, and append what changed to `.seoagent/changelog.md`.
86 
87## Answer-engine optimization (AEO/GEO)
88Beyond classic SEO, structure content so AI assistants (ChatGPT, Claude, Perplexity, Google AI Overviews) can cite it: lead with a direct answer, use clear headings as questions, include comparison tables and concrete stats, and add FAQ/HowTo structured data. This makes pages citable in AI-generated answers, not just rankable.
89 
90## Running the full agent
91This skill captures the SEOAgent methodology. The full agent ships as a CLI that scaffolds the `.seoagent/` workspace, installs an expanded reference library (per-page-type protocols, a JSON-LD library, an audit-check catalog), and adds an optional cloud loop:
92 
93```bash
94# npm
95npm install -g @seoagent-official/seoagent && seoagent init
96 
97# or the plugin marketplace (Claude Code or Codex)
98/plugin marketplace add Baxter-Inc/seoagent-npm
99```
100 
101Free and local by default (uses your agent's own tools; data stays in your repo). Optional cloud adds real keyword data, Google Search Console, and CMS publishing. MIT licensed — https://github.com/Baxter-Inc/seoagent-npm
102 

Discussion

Alternatives

Agentic Browsing ReadinessAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).Marketing · MITBacklink Profile AnalysisBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.Marketing · MIT/setup-cmsConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report. · MITBacklink checkBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".Marketing · MIT