I did not write these skills. I want that at the very top, because it shapes everything below. What I did was read roughly 260 Claude skills from across the open ecosystem, work out which ones actually did different jobs from each other, and delete most of them. What survived is a library of 81 SEO and content skills where no two do the same thing.

It is free, MIT licensed, and installs in one command:

Snippet
npx skills add gaznil/seo-skills-by-gaznil

Repository: github.com/gaznil/seo-skills-by-gaznil
Full catalogue: the docs site

This post is about the filtering method, because that turned out to be the part worth writing down.

The problem nobody mentions about skill libraries

Agent Skills are having a moment. There are thousands of them now, and the natural instinct when you find a good pack is to install the whole thing. Then you find another good pack and install that too.

What happens next is not obvious until it bites you.

Overlapping purposes. You end up with three skills that all claim to audit on-page SEO. The agent picks one, effectively at random, and you never find out which. Two of the three may be significantly better than the one it chose.

Name collisions. Two packs both ship a skill called schema. One silently shadows the other. Nothing errors. You just quietly get the wrong instructions.

Dead-end references. This is the one that surprised me most. Skills routinely say things like “for AI search optimization, see the ai-seo skill.” If that skill was never installed, the agent reads a signpost pointing at nothing and carries on without the guidance it was told to fetch. You get a degraded answer and no warning that anything is missing.

I hit all three during a real client audit before I understood what was happening.

What triggered this

I was running a full SEO audit on a live Shopify store selling modest wear in India. Real client, real revenue, real deadline.

Partway through I found the single biggest issue on the site: the product pages had no Product schema at all. No price, no stock status, nothing a shopping result or an AI assistant could read. For an ecommerce store that is close to the worst finding available.

Then I went looking for a skill to handle ecommerce schema properly, and there wasn’t one installed. The audit skill I was using referenced an ai-seo skill for the AI-search section. Also not installed. It referenced programmatic-seo, site-architecture, cro, analytics. None of them installed.

Every one of those was sitting in the same MIT-licensed repository the audit skill itself came from. I had installed about a third of a pack and never noticed the rest existed.

That is what started the filtering project.

What I did not do

To be completely clear about the nature of this work:

  • I did not author any of these skills. Not one. Every SKILL.md is the original author’s work, unchanged.
  • I did not improve their contents. I changed zero words inside any skill file.
  • I did not invent new capabilities. The library is not more powerful than its sources. It is more coherent.

What I contributed is selection, verification, and organisation. That is real work, and it is worth something — but it is curation, not creation, and calling it anything else would be dishonest.

The three filtering passes

Pass one: one skill per purpose

I opened every candidate and read what it actually contained, rather than trusting its install count. Then for each job an SEO practitioner needs done, I picked exactly one skill and cut the rest.

This meant discarding some genuinely popular skills. One AI-search skill had 44,000 installs and was excluded, because a different one covered the same ground inside a more coherent set. Popularity is a signal about marketing, not about fit.

It also meant reading closely enough to spot near-misses. I nearly shipped a “Jersey Cotton Prayer Dress” style collision in the SEO set itself — two skills whose stated purposes read differently but whose actual coverage was the same. Only reading the contents catches that.

Pass two: name-collision checking

Every skill name was checked against every other name in the set, and against the names in widely-installed SEO packs. Zero collisions in the final library.

This is boring, mechanical work and it is the difference between a library that behaves predictably and one that surprises you in six months.

Pass three: dangling-reference tracing

This is the pass I would not have thought to run if the client audit had not embarrassed me first.

I scanned every skill for phrases like “see X” and “use X”, extracted the referenced skill names, and checked each one actually existed in the set. Three real dead ends turned up — twitter-cards, attribution and ab-testing — and I added those skills.

The rest were naming aliases rather than genuine gaps: one skill would say “see schema” while the installed equivalent was called schema-markup. Rather than duplicate a skill to satisfy a reference, I documented the mapping in an alias table in the README, so both the reader and the agent can resolve it.

A fourth pass I did not plan: provenance

Before publishing anything publicly I traced every skill back to a licensed upstream repository, by diffing file contents rather than trusting folder names.

Almost everything resolved cleanly to MIT-licensed sources. Three skills matched nothing I could find. I left those out. Publishing someone’s work without knowing whether you are allowed to is how a repository gets taken down, and more to the point it is just not okay.

What ended up in the library

81 skills across eleven areas:

  • AI search — getting cited by ChatGPT, Perplexity, Google AI Overviews and Claude, including llms.txt and agent readiness
  • Strategy — audits, keyword research, site architecture, topic clustering, programmatic SEO
  • On-page — titles, meta descriptions, headings, metadata, Open Graph, URL structure, canonicals, internal links, schema
  • Technical — crawlability, indexing, robots, sitemaps, Core Web Vitals, rendering strategies, IndexNow
  • Ecommerce and local — product schema, Google Shopping, GBP audits, geo-grid rank tracking
  • International — hreflang and multilingual content
  • Media — image SEO, video SEO, accessibility
  • Off-page — backlink analysis, digital PR, directory submissions
  • Content — briefs, writing, rewriting, repurposing, a full blog pipeline
  • Operations — regression monitoring, content audits, cannibalisation detection
  • Measurement — Search Console, analytics, attribution, A/B testing, conversion

The one I did not expect to value most is seo-drift. It captures a baseline of your on-page SEO and diffs it later — effectively version control for your meta tags. If you are about to make sixty edits across a site, that is the skill that tells you when one of them broke something.

What it does not cover

Three areas are missing, and they are missing because nothing good exists anywhere in the ecosystem yet. I searched specifically.

Log file analysis. Reading your server access logs to see how Googlebot actually crawls your site — which URLs it visits, how often, and which it never touches. Everything else is second-hand; logs are the raw record. Nobody has built this well, probably because log formats vary wildly and the files get enormous.

Site migration SEO. The single highest-risk work in the field, where sites routinely lose most of their traffic overnight. Thin coverage everywhere.

Penalty and manual action recovery. Also thin.

If you build one of those, it will get more attention than any curated bundle, mine included.

Credit where it belongs

Every skill in this library was written by someone else. All four sources are MIT licensed and all original copyright notices are retained in the repository’s NOTICE file.

  • kostja94/marketing-skills — the granular on-page and technical SEO set. Unusually well-decomposed; one skill per tag rather than one giant SEO skill.
  • agricidaniel/claude-seo and agricidaniel/claude-blog — the deepest pure-SEO work I found, plus the entire blog pipeline. The ecommerce and drift-monitoring skills are both from here.
  • coreyhaines31/marketingskills — the strategy layer. Corey’s AI search skill is the most complete treatment of the topic I have read.
  • addyosmani/web-quality-skills — the accessibility skill. Notable because it explicitly refuses to invent ranking-factor weights or promise ranking changes. That restraint is rare in SEO tooling and it is why I kept it.

Frequently asked questions

What are the best SEO skills for Claude?

It depends what you need done, which is exactly the problem this library tries to remove. Because no two skills here share a purpose, exactly one should match any given task. That makes selection unambiguous for the agent rather than a coin flip between three overlapping options.

How do I install SEO skills in Claude Code?

Run npx skills add gaznil/seo-skills-by-gaznil. For a single skill, append @ and the skill name. It also installs as a Claude Code plugin via /plugin marketplace add.

Is this better than installing the original packs?

Not more powerful — the skill files are identical to the originals. It is smaller and more predictable. Installing all four sources gives you around 260 skills with overlaps, collisions and dead-end references. This gives you 81 without them. If you would rather have everything, install the sources directly; they are all linked above.

Does it work outside Claude?

Yes. It uses the standard Agent Skills format, so any agent runtime that reads SKILL.md files can use it.

Is it free?

Yes. MIT licensed, free to use, modify and redistribute.

The honest summary

This is a curation project. The value is in what was removed and verified, not in anything newly written. If that is useful to you, it is free and it is one command away.

And if you find an overlap I missed or a reference that dead-ends, open an issue. That is the part I actually care about getting right.

Snippet
npx skills add gaznil/seo-skills-by-gaznil