How to Make Your Agent Better at SEO
A skills.sh shortlist for audit, copy, AI citation, programmatic pages, and Next.js metadata, with a download link and install command for each skill.
Critique
GUIDES / AGENT SKILLS
Better at SEO
Audit, copy, citation, Next.js metadata.
critique.sh
Agent harness · BYOA · Composer 2.5
Install skills from skills.sh, not another “write more keywords” prompt. Start with `find-skills`, then install `seo-audit`, `copywriting`, `ai-seo`, `programmatic-seo`, `content-writer`, and `nextjs-seo`. Audit before you draft. Draft before you touch generateMetadata. Treat AI citation as a separate job from Google rankings.
A coding agent will happily ship a landing page with a 12-word title, no canonical, and a FAQ nobody searched. That is not search strategy. It is a completed prompt.
The model already knows that title tags should be unique. It still skips the crawl, invents schema that never renders, and writes H2s that repeat the keyword instead of answering the query. Skills fix that by replacing vibes with a checklist the agent has to walk.
What skills.sh actually installs
skills.sh is the public directory for Agent Skills: folders of instructions, and sometimes scripts, that a coding agent can load when the task matches. The package manager is npx skills. The discovery skill is `find-skills` from vercel-labs/skills (3.4M installs).
A skill is not a model upgrade. It is a procedure the agent is supposed to follow: which files to read, which checks to run, which output shape to return, and when to stop. That is why a mediocre prompt plus a good skill often beats a long chat with no procedure.
A working SEO loop for an agent
- 1Do you know what is already broken?Run seo-audit against the current site or the current App Router files. Do not draft until crawl, index, and metadata issues are listed.
- 2Is the page trying to rank, convert, or get cited?copywriting owns the promise and the CTA. ai-seo owns extractable answers for ChatGPT, Perplexity, and AI Overviews. Those are different outputs.
- 3Are you generating many pages from one template?programmatic-seo is the gate against thin duplicates. If every page is the same paragraph with a city name swapped, stop.
- 4Is this a Next.js app?Hand the implementation to nextjs-seo: metadata, sitemap, robots, JSON-LD, and crawler policy in the files that actually ship.
Six SEO skills worth installing
These are not the only SEO skills on skills.sh. They are the ones that cover a full loop without stacking three overlapping “write a blog post” packs. The older seo-content-writer tree under aaron-he-zhu/seo-geo-claude-skills is now a signpost; new writing installs should use content-writer from aaron-marketing-skills.
| Skill | Use it for | Installs | Download |
|---|---|---|---|
seo-audit | Diagnose crawl, index, on-page, content, and authority gaps before you rewrite copy. | 207.5K | Download on skills.sh |
copywriting | Rewrite page copy so the promise is specific, the CTA is one action, and the language matches the customer. | 200.8K | Download on skills.sh |
ai-seo | Make pages citable by AI Overviews, ChatGPT, Perplexity, Gemini, and Copilot, not only rankable on Google. | 125.4K | Download on skills.sh |
programmatic-seo | Plan templated pages around a real entity set instead of spinning thin near-duplicates. | 132.0K | Download on skills.sh |
content-writer | Draft or refresh SEO/GEO articles against a keyword, with EEAT constraints and a handoff to a quality gate. | maintained pack | Download on skills.sh |
nextjs-seo | Implement App Router metadata, sitemap, robots, JSON-LD, and AI-crawler policy in actual Next.js files. | implementation | Download on skills.sh |
Open the download page
Each card goes to the skills.sh listing. From there you can copy the install command or inspect the SKILL.md.
coreyhaines31/marketingskills.coreyhaines31/marketingskills.coreyhaines31/marketingskills.coreyhaines31/marketingskills.aaron-he-zhu/aaron-marketing-skills.laguagu/claude-code-nextjs-skills.discover
npx skills add https://github.com/vercel-labs/skills --skill find-skills
npx skills find seoBrowse the leaderboard, then search by job rather than by brand.
seo-audit
npx skills add https://github.com/coreyhaines31/marketingskills --skill seo-audithttps://skills.sh/coreyhaines31/marketingskills/seo-audit
copywriting
npx skills add https://github.com/coreyhaines31/marketingskills --skill copywritinghttps://skills.sh/coreyhaines31/marketingskills/copywriting
ai-seo
npx skills add https://github.com/coreyhaines31/marketingskills --skill ai-seohttps://skills.sh/coreyhaines31/marketingskills/ai-seo
programmatic-seo
npx skills add https://github.com/coreyhaines31/marketingskills --skill programmatic-seohttps://skills.sh/coreyhaines31/marketingskills/programmatic-seo
content-writer
npx skills add https://github.com/aaron-he-zhu/aaron-marketing-skills --skill content-writerhttps://skills.sh/aaron-he-zhu/aaron-marketing-skills/content-writer
nextjs-seo
npx skills add https://github.com/laguagu/claude-code-nextjs-skills --skill nextjs-seohttps://skills.sh/laguagu/claude-code-nextjs-skills/nextjs-seo
What to skip, even if it shows up in search
Low-install one-off SEO skills are everywhere. If a listing has a few hundred installs, a private author, and a SKILL.md that is just “write long content with keywords,” leave it. Prefer coreyhaines31/marketingskills for research and audits, aaron-he-zhu/aaron-marketing-skills for the GEO writing contract, and a Next.js-specific skill for the repo you actually deploy.
If you want generated App Router code rather than an audit narrative, also look at `seo` from leahycc/claude-skills. It is a code-pattern skill, not a substitute for seo-audit.
Skills improve the author. They do not finish the change.
An SEO skill can still invent a keyword strategy that your site cannot support. Review the metadata, the internal links, and the claims the same way you review application code.
If Claude Code, Codex, Cursor, or OpenCode is already the author, keep it. Install the skills above, then run an independent finish pass with the critique sidecar when a unit of work is ready. If you want Critique to be the author, use CritiqueCode: it implements, then the controller forces review and verified repair before promotion. Those are different binaries. Do not mix the jobs.