Claude Code Skills for SEO: How to Build One
How to create Claude Code skills for SEO: the SKILL.md format, example SEO skills, and where skills live on disk.

Your monthly technical audit eats an afternoon. The same audit runs in minutes once a Claude Code skill does it.
Claude Code skills are folders with a SKILL.md file that teach the AI a specific job. An SEO skill can run a technical audit, check internal links, or draft a content brief on command. Skills load only when asked, so you can install many without slowing anything down. Building your first SEO skill takes minutes and needs no code.
Most guides to Claude Code SEO skills hand you a catalog of someone else’s audits. This page is the plain version: what the file is, how to write one, and which SEO work earns a file.
TL;DR
- A Claude Code skill is a folder with a SKILL.md file. Its description decides when Claude Code loads it.
- Personal skills live in ~/.claude/skills. Project skills live in .claude/skills. The folder name becomes the command you type.
- The format follows the Agent Skills open spec, so one file works across the tools that adopt it.
- Ready-made SEO skill sets exist on GitHub. Run one before you write your own.
What are Claude Code skills?
A Claude Code skill is a folder with a SKILL.md file. The file names the job, describes when to use it, and holds the steps. Claude Code loads it when your request matches, or you type /skill-name to run it.
Build a skill when you keep pasting the same instructions into chat. That is also the moment a section of CLAUDE.md has grown into a procedure. The Claude Code skills documentation names both signs. The body loads only when used, so long reference material costs almost nothing until you need it.
Claude Code ships its own bundled skills, like /code-review, /debug, and /batch. They are prompt-based files that orchestrate your tools.
A skill is a procedure with a trigger attached.
The SEO jobs that earn a skill file
Most of my SEO week is the same jobs wearing different URLs. A technical audit is the classic fit. The checklist is fixed, and the output shape is the same.
- Internal link review: check every page on a domain for broken and orphaned links.
- Citation check: compare a business’s name, address, and phone across the web.
- Keyword research: turn a seed keyword into entities, sources, and questions, then into a brief.
That last one is the workhorse in my world. I run a local SEO agency, and the content pipeline that wrote this post is five agents doing five fixed jobs. Each agent follows a written brief.
The content brief is the file my own pipeline runs on.
How do I write a Claude Code skill for SEO?
Pick one repeating SEO job. Create a folder with a SKILL.md file: frontmatter that names and describes the job, then the steps in plain markdown. Put the folder in ~/.claude/skills or .claude/skills, then test it on a real page. No config file is needed.
The steps are short:
- Make the folder.
mkdir -p ~/.claude/skills/seo-auditis enough. The folder name becomes the command you type. - Write SKILL.md. YAML frontmatter first, markdown steps after.
- Test on a real page. Ask for the job in your own words, then run /seo-audit and compare.
- Commit the folder to your repo. A skill that lives on one laptop is a skill you will lose.
The docs start with mkdir -p ~/.claude/skills/summarize-changes as the example, and the directory name becomes the command. The full plain path, from folder to test, is the subject of the how to create Claude Code skills post.
The folder name becomes the command you type, so name it what you would say.
What is the SKILL.md format for Claude Code skills?
SKILL.md is a markdown file with YAML frontmatter between — markers. The frontmatter names the skill and describes when to use it. The body holds the steps Claude follows. Only the description is recommended. The rest is optional.
The frontmatter reference in the docs lists every field. Five are worth remembering:
name: display name. Defaults to the folder name.description: what the skill does and when to use it. This is the trigger.allowed-tools: tools the skill can call without asking, for the turn that invokes it.disable-model-invocation: set to true to keep a workflow manual-only.context: fork: run the skill in its own subagent with a clean context.
Leave the description out and Claude Code falls back to the first paragraph of the body. Keep SKILL.md under 500 lines and move detail into reference files. Once a skill loads, the body stays in context across turns, so every line is a recurring token cost.
Once a skill loads, its body stays in context for the rest of the session, so keep the file short.
The description is the trigger
Claude Code keeps a listing of skill names and descriptions in context and matches your request against it. It loads only when a description matches. That two-stage load is progressive disclosure, the core of the Agent Skills specification, which Anthropic released as an open standard.
The listing has limits worth knowing. Each description caps at 1,536 characters, per the docs. Install many skills and the listing budget starts shortening the least-used descriptions, so the ones you invoke most keep their full text.
I run my own agent stack, and it picks tools by the same rule, matching descriptions. When one of my skills does not fire, I edit the description first. The body is rarely the problem.
By the time the body loads, the description has already won or lost the match.
How is a skill different from a prompt or a slash command?
A prompt is a request you paste. A slash command is a shortcut you type by name. A skill is a shortcut with a folder behind it, and it can load itself when the description matches. Custom commands have merged into skills, so both make the same /name.
| Prompt | Slash command | Skill | |
|---|---|---|---|
| When it runs | When you paste it | When you type /name | By you, or by Claude on a match |
| What it holds | Text only | A text file | A folder: SKILL.md, scripts, references |
| Who controls it | You | You | Frontmatter: disable-model-invocation, context: fork |
| How it shares | Copy the text | Copy the file | Copy the folder, or ship a plugin |
The formats share one namespace now. A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both create /deploy, per the docs. Skills win when both exist.
CLAUDE.md is the other neighbor, and the docs draw the line: it rides in context all session, so it suits facts. Procedures move into skills and load only when used.
Skills talk to subagents too. Add context: fork and the skill runs inside its own subagent with a clean context. The full picture is in the FAQ below.
A skill is the only one of the three that fires without being asked.
What do working Claude Code SEO skills look like?
A working SEO skill is a small SKILL.md file for one repeated job. The technical audit is the shape that fits most shops. Internal-link reviews and content briefs fit the same frontmatter and a few lines of steps. The description does the matching, the body does the work.
| Skill | Description (the trigger) | What it returns |
|---|---|---|
| Technical audit | Audit this page against the checklist | A scored list of fixes with severity |
| Internal link review | Check links between pages on this domain | A table of broken and orphaned links |
| Content brief | Draft a brief for this keyword | Outline, entities, sources, and questions |
You can copy working files instead of writing from scratch. I read working files before I write my own. The Claude SEO skill on GitHub ships 25 sub-skills and 18 specialist agents. The coverage runs wide:
- Technical SEO: crawlability, indexability, mobile, and Core Web Vitals.
- Content and E-E-A-T: thin content detection, readability, and quality signals.
- Schema.org markup: validity checks and draft JSON-LD.
- GEO and AI search: citability for AI Overviews and answer engines.
- Local SEO: Google Business Profile audits, NAP consistency, and citations.
- Google APIs: Search Console, PageSpeed, and CrUX reporting.
- Backlinks, e-commerce, and international SEO.
The Claude SEO skills catalog counts the same package: 25 skills, 32 user commands, and 18 specialist agents. Eight optional extensions and 439 tests round it out, and the package is MIT licensed.
Optional extensions bring live data:
- DataForSEO: live SERP and keyword data.
- Firecrawl: full-site crawling.
- Banana: SEO image generation.
The catalog’s guidance: run the full-site audit for a broad baseline. Use a focused skill when the problem is known, then compare findings with Google Search Essentials and the SEO Starter Guide. The same pattern runs adjacent lanes, like the claude code skills for marketing post.
Reading a working skill file is the fastest way to learn the format.
What runs on skills in a working SEO shop
I run a local SEO agency, and the systems I sell match the systems I use. My outreach runs on automation, roughly 200 form submissions a day. Follow-up runs on files. The pipeline that wrote this post is five agents doing five fixed jobs, each with a written brief.

AutomateReal services
The Google Business Profile side is closest to this topic. Audit steps repeat. Citation checks and review responses repeat too. They became the GBP Optimization Audit and Citation Builder skills in the skills bundle. The bundle sells all skills for $99. Skill Creator sits in the same bundle. Turning a procedure into a SKILL.md is itself a repeatable procedure.

AutomateReal skills
The format is easy to copy. A running system is the part that takes work.
How do I install, store, and list skills in Claude Code?
Skills install as folders. Copy one into ~/.claude/skills for every project, or into .claude/skills for one repository. Type /skills to list what is loaded, then /skill-name to run one. /skill-doctor shows what each skill costs in context.
The docs page on where skills live on disk starts with personal skills in ~/.claude/skills. Project skills in .claude/skills follow, then plugin and claude.ai locations.
| Location | Loads in |
|---|---|
| ~/.claude/skills | All your projects on this machine |
| .claude/skills | Sessions in that repository |
<plugin>/skills |
Wherever the plugin is enabled |
| ~/.claude/skills/synced | Skills downloaded from your claude.ai account |
Plugin skills mount as /plugin-name:skill-name. Type /skills and Claude Code shows the loaded set, with synced skills grouped under claude.ai sync, per the docs. Removal is a delete: remove the folder and Claude Code drops the skill from the current session.
There is no registry. Install, update, and remove are folder operations.
For a managed version, see the skills bundle.
FAQ
Do skills work with Claude Code subagents?
Yes, in both directions. Add context: fork and the skill runs as its own subagent with a clean context and no conversation history. The subagent runs in the background by default, and its result lands in your conversation when done. The reverse works too: a subagent with a skills field preloads those skills at startup.
How do I write a skill that calls a tool or a script?
List the tools in allowed-tools, and the grant lasts one turn, per the docs. Scripts live in the skill’s scripts folder. Use ${CLAUDE_SKILL_DIR} for the skill’s own location so the path survives any install. MCP tools join the same list by their full name, such as mcp__server__tool.
Where are Claude Code skills stored on disk?
Personal skills sit in ~/.claude/skills. Project skills sit in .claude/skills and ride the repository. Plugin skills live inside the plugin folder, and claude.ai downloads land in ~/.claude/skills/synced. Every location is a folder you can copy.
Are there ready-made Claude Code skills for SEO?
Yes. The Claude SEO skill on GitHub ships 25 sub-skills and 18 specialist agents. The catalog counts 32 user commands, 8 optional extensions, and 439 tests. It installs as a plugin and is MIT licensed.
Can I use the same skill in Claude Code and claude.ai?
Yes, with one rule. The file must use only the fields the Agent Skills spec allows, like name and description. Claude Code-only fields such as disable-model-invocation or context: fork fail the upload with a hard error, per the docs. Skills you enable on claude.ai download into ~/.claude/skills/synced.
Start with one file
Pick the SEO job you repeat most and give it a folder this week. The format is minutes of work. The test is one real request. If you want help finding that first workflow, a discovery call maps it in about thirty minutes.