Codex SEO follows Codex skill conventions with a modular, multi-skill architecture.
~/.codex/
├── skills/
│ ├── seo/ # Main orchestrator skill
│ │ ├── SKILL.md # Entry point with routing logic
│ │ └── references/ # On-demand reference files
│ │ ├── cwv-thresholds.md
│ │ ├── schema-types.md
│ │ ├── eeat-framework.md
│ │ └── quality-gates.md
│ │
│ ├── seo-audit/ # Full site audit
│ ├── seo-competitor-pages/ # Competitor comparison pages
│ ├── seo-content/ # E-E-A-T analysis
│ ├── seo-geo/ # AI search optimization
│ ├── seo-hreflang/ # Hreflang/i18n SEO
│ ├── seo-images/ # Image optimization
│ ├── seo-page/ # Single page analysis
│ ├── seo-plan/ # Strategic planning
│ │ └── assets/ # Industry templates
│ ├── seo-programmatic/ # Programmatic SEO
│ ├── seo-schema/ # Schema markup
│ ├── seo-sitemap/ # Sitemap analysis/generation
│ └── seo-technical/ # Technical SEO
│
└── agents/
├── seo-technical.md # Technical SEO specialist
├── seo-content.md # Content quality reviewer
├── seo-schema.md # Schema markup expert
├── seo-sitemap.md # Sitemap architect
├── seo-performance.md # Performance analyzer
└── seo-visual.md # Visual analyzer
Skills are markdown files with YAML frontmatter that define capabilities and instructions.
SKILL.md Format:
---
name: skill-name
description: >
When to use this skill. Include activation keywords
and concrete use cases.
---
# Skill Title
Instructions and documentation...Subagents are specialized workers that can be delegated tasks. They have their own context and tools.
Agent Format:
---
name: agent-name
description: What this agent does.
tools: Read, Bash, Write, Glob, Grep
---
Instructions for the agent...Reference files contain static data loaded on-demand to avoid bloating the main skill.
User Request
│
▼
┌─────────────────┐
│ seo │ ← Main orchestrator
│ (SKILL.md) │
└────────┬────────┘
│
│ Detects business type
│ Spawns subagents in parallel
│
┌────┴────┬────────┬────────┬────────┬────────┐
▼ ▼ ▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│tech │ │content│ │schema │ │sitemap│ │perf │ │visual │
│agent │ │agent │ │agent │ │agent │ │agent │ │agent │
└───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘
│ │ │ │ │ │
└─────────┴────────┴────┬───┴────────┴────────┘
│
▼
┌───────────────┐
│ Aggregate │
│ Results │
└───────┬───────┘
│
▼
┌───────────────┐
│ Generate │
│ Report │
└───────────────┘
User Request (e.g., $seo-page)
│
▼
┌─────────────────┐
│ seo │ ← Routes to sub-skill
└────────┬────────┘
│
▼
┌─────────────────┐
│ seo-page │ ← Sub-skill handles directly
│ (SKILL.md) │
└─────────────────┘
- Main SKILL.md is concise (<200 lines)
- Reference files loaded on-demand
- Detailed instructions in sub-skills
- Subagents run concurrently during audits
- Independent analyses don't block each other
- Results aggregated after all complete
- Built-in thresholds prevent bad recommendations
- Location page limits (30 warning, 50 hard stop)
- Schema deprecation awareness
- FID → INP replacement enforced
- Templates for different business types
- Automatic detection from homepage signals
- Tailored recommendations per industry
| Type | Pattern | Example |
|---|---|---|
| Skill | seo-{name}/SKILL.md |
seo-audit/SKILL.md |
| Agent | seo-{name}.md |
seo-technical.md |
| Reference | {topic}.md |
cwv-thresholds.md |
| Script | {action}_{target}.py |
fetch_page.py |
| Template | {industry}.md |
saas.md |
- Create
skills/seo-newskill/SKILL.md - Add YAML frontmatter with name and description
- Write skill instructions
- Update main
seo/SKILL.mdto route to new skill
- Create
agents/seo-newagent.md - Add YAML frontmatter with name, description, tools
- Write agent instructions
- Reference from relevant skills
- Create file in appropriate
references/directory - Reference in skill with load-on-demand instruction