SEO workflows for AI coding agents, grounded in Google Search Central.
Commands are phases (what to do now). Skills are playbooks (how to do it). Plans and evidence go in seo-plan/ before large site edits.
Not affiliated with Google. Guidance is paraphrased from official docs (CC BY 4.0). Skill workflows and code are MIT.
Main path — run in order unless you already know the phase:
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+
| DISCOVER | | SCOPE | | FIX | | VERIFY | | REVIEW | | SHIP |
| goals | | audit | | impl | | prove | | gate | | live |
| | | | | | | | | | | |
| /seo-brief +---->+ /seo-audit +---->+ /seo-build +---->+ /seo-test +---->+ /seo-review +---->+ /seo-ship |
| | | | | | | | | | | |
| clarify | | prioritize | | one URL or | | evidence, | | quality + | | publish + |
| success | | findings | | template | | not vibes | | spam + DoD | | monitor GSC |
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+
Each box is the same width so labels and arrows line up. Fast paths jump into Fix for one job — write a plan file first:
+--------------+
| /seo-schema |
| JSON-LD only |
+------+-------+ +------------------+ +--------------+
| | | | |
+------------>+ plan then fix +---->+ /seo-test |
| | | | |
+------+-------+ +------------------+ +--------------+
| /seo-cwv |
| measure LCP |
| INP / CLS |
+--------------+
npx skills add MYehia565/google-seo-agent-skills
npx skills add MYehia565/google-seo-agent-skills --listPython 3.10+ is required only for optional auditors (skills/*/scripts/, stdlib only).
| Agent | Setup |
|---|---|
| Claude Code | docs/claude-setup.md |
| Cursor | docs/cursor-setup.md |
| Codex | docs/codex-setup.md |
| Gemini CLI | docs/gemini-cli-setup.md |
| Copilot, OpenCode, Windsurf | docs/getting-started.md |
How agents should behave: open the /seo-* command file, load only the skills/<name>/SKILL.md paths it lists, write artifacts under seo-plan/. Do not search other skill packs for SEO.
Each command has one target. Do not mix phases in the same turn unless the user asks.
| Command | Target | Use when | Writes | Loads |
|---|---|---|---|---|
/seo-brief |
Agree what success is before touching pages | New engagement, vague “improve SEO” | seo-plan/brief.md |
seo-interview |
/seo-audit |
Turn symptoms into an ordered fix list | Traffic drop, unknown issues, full audit | seo-plan/audit-plan.md, symptoms.md |
seo-audit-plan |
/seo-build |
Implement one URL or template slice | Plan approved (or a single known fix) | Site change + seo-plan/build-log.md |
Router using-google-seo-skills → one domain skill |
/seo-test |
Prove the last change with evidence | After /seo-build, schema, or CWV work |
seo-plan/evidence/*, test-report.md |
Matching skills/*/scripts/ |
/seo-review |
Pre-publish gate: quality, EEAT, spam, technical DoD | Before merge or go-live | seo-plan/review.md |
content, eeat, spam + definition-of-done-seo |
/seo-ship |
Go live and watch Search Console | Review approved (or written override) | seo-plan/ship.md |
seo-fix-and-ship, search-console-ops |
/seo-schema |
JSON-LD / rich-result eligibility only | Adding or fixing schema | seo-plan/schema-plan.md first, then markup |
structured-data |
/seo-cwv |
Measure then fix LCP / INP / CLS | Slow pages, layout shift, CWV fails | seo-plan/cwv-plan.md first, then code |
core-web-vitals |
/seo-audit auto — after the user approves seo-plan/audit-plan.md, run listed skills in order and pause on blockers.
Twenty playbooks. Commands pick them; you can also name a skill directly.
| Skill | Target |
|---|---|
using-google-seo-skills |
Route a task to the right skill (session start) |
seo-interview |
Extract goals, constraints, success metrics |
seo-audit-plan |
Prioritize findings and assign skills |
| Skill | Target |
|---|---|
crawling-and-indexing |
robots, sitemaps, status codes, indexability |
canonicalization |
Duplicates, rel=canonical, redirects |
page-metadata |
Title, description, robots meta, headings |
javascript-seo |
JS rendering, lazy-load, crawlable links |
mobile-and-page-experience |
Mobile-first parity, interstitials |
| Skill | Target |
|---|---|
structured-data |
JSON-LD, @graph, rich-result eligibility |
images-and-video-seo |
Media discovery, alt, CLS dimensions |
core-web-vitals |
Measure and remediate LCP / INP / CLS |
on-page-content-quality |
People-first, helpful content |
eeat-and-trust |
Bylines, dates, authorship, trust |
generative-ai-search |
Official AI / gen-AI content guidance only |
| Skill | Target |
|---|---|
international-seo |
hreflang, locales, multi-regional |
ecommerce-seo |
Product IA, product data, shopping schema |
search-console-ops |
GSC monitoring, traffic-drop debug |
spam-and-abuse-prevention |
Spam policies; refuse cloaking, doorways, link schemes |
seo-content-authoring |
Write/rewrite a page that clears SEO gates |
seo-fix-and-ship |
Pre-publish checklist and post-launch watch |
Source URLs for every skill: references/source-map.md.
Optional personas (they recommend skills; they do not call other personas):
| Persona | Focus |
|---|---|
technical-seo-auditor |
Crawl, canonical, metadata, JS |
schema-architect |
JSON-LD / rich results |
content-quality-reviewer |
Helpful content, EEAT, spam |
cwv-performance-auditor |
Measure-first CWV |
international-seo-specialist |
Locales / hreflang |
python scripts/lint_skills.py
python scripts/run_evals.pyNetwork fetches are http(s) only (scripts/http_html.py). Prefer local HTML under evals/fixtures/ or seo-plan/evidence/. Optional PageSpeed key: PSI_API_KEY.
MIT — LICENSE.