Claude skills for SEO, tested
Skills for SEO work, measured on on-page audit tasks. Each was the same task, run twice, once with the skill loaded and once without it, and what is below is what changed. Ranked by how many models the rule found a clear effect on, never by the size of one.
Measured on 3 models (Claude, GPT & Gemini): Claude Haiku 4.5, GPT-5 mini, Gemini 3.1 Flash Lite.
10 fixture pages seeded with 43 known on-page SEO issues from a closed list of 19 issue types. The model is asked to list the issues; the score is the share of seeded issues it names. 39 verified mechanically, 4 judgement items listed as such.
What helped, and on how many models
First
skills/seo-onpage rampstackco/claude-skills*
On-page audit
Helped on Gemini 3.1 Flash Lite; no reliable difference on Claude Haiku 4.5 and GPT-5 mini. Measured against no skill loaded.
Found 56% of the seeded on-page issues, against 39% with no skill loaded. Instruction arm: not measured.
Via API
- Claude Haiku 4.5 · unclear. The model scored 24% without it.
- Gemini 3.1 Flash Lite · helped
- GPT-5 mini · unclear. The model scored 45% without it.
In Claude Code
- Claude Fable 5, First run, single attempt · Nothing left to measure. The model scored 90% without the skill.
- Claude Opus 5, First run, single attempt · unclear. The model scored 89% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 89% without it.
- Claude Haiku 4.5, Second run, every task twice · unclear. The model scored 25% without it.
- Claude Opus 5, Second run, every task twice · unclear. The model scored 88% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 59% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · Nothing left to measure. The model scored 98% without the skill.
- Claude Fable 5.1, Wider run, three ways · Nothing left to measure. The model scored 95% without the skill.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 26% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 89% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 66% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 92% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · Nothing left to measure. The model scored 91% without the skill.
Cost per task, with the skill loaded: about $0.00337. Adds about 6,200 tokens of context to every request.
Tied for second · shared with 3 others, and the tie is broken by nothing
skills/seo-onpage rampstackco/claude-skills*
On-page audit
No reliable difference on any model tested. The models scored 53% without it. Measured against the same task with a one-line instruction.
Found 63% of the seeded on-page issues, against 53% with no skill loaded. Against 53% with a one-line instruction instead.
Via API
- Gemini 3.1 Flash Lite · unclear. The model scored 49% without it.
- GPT-5 mini · unclear. The model scored 58% without it.
In Claude Code
- Claude Fable 5, First run, single attempt · Nothing left to measure. The model scored 90% without the skill.
- Claude Opus 5, First run, single attempt · unclear. The model scored 89% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 89% without it.
- Claude Haiku 4.5, Second run, every task twice · unclear. The model scored 25% without it.
- Claude Opus 5, Second run, every task twice · unclear. The model scored 88% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 59% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · Nothing left to measure. The model scored 98% without the skill.
- Claude Fable 5.1, Wider run, three ways · Nothing left to measure. The model scored 95% without the skill.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 26% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 89% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 66% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 92% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · Nothing left to measure. The model scored 91% without the skill.
Cost per task, with the skill loaded: about $0.00161. Adds about 6,000 tokens of context to every request.
Tied for second · shared with 3 others, and the tie is broken by nothing
skills/seo affaan-m/ECC
On-page audit
No reliable difference on any model tested. The models scored 39% without it. Measured against no skill loaded.
Found 44% of the seeded on-page issues, against 39% with no skill loaded. Instruction arm: not measured.
Via API
- Claude Haiku 4.5 · unclear. The model scored 24% without it.
- Gemini 3.1 Flash Lite · unclear. The model scored 49% without it.
- GPT-5 mini · unclear. The model scored 45% without it.
In Claude Code
- Claude Fable 5, First run, single attempt · Nothing left to measure. The model scored 94% without the skill.
- Claude Opus 5, First run, single attempt · unclear. The model scored 87% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 87% without it.
- Claude Haiku 4.5, Second run, every task twice · unclear. The model scored 21% without it.
- Claude Opus 5, Second run, every task twice · unclear. The model scored 89% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 59% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · Nothing left to measure. The model scored 98% without the skill.
- Claude Fable 5.1, Wider run, three ways · Nothing left to measure. The model scored 98% without the skill.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 24% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 89% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 48% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 93% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · Nothing left to measure. The model scored 98% without the skill.
Cost per task, with the skill loaded: about $0.00102. Adds about 1,600 tokens of context to every request.
Tied for second · shared with 3 others, and the tie is broken by nothing
marketing-skill/skills/seo-audit alirezarezvani/claude-skills
On-page audit
No reliable difference on any model tested. The models scored 47% without it. Measured against the same task with a one-line instruction.
Found 58% of the seeded on-page issues, against 47% with no skill loaded. Against 56% with a one-line instruction instead.
Via API
- Gemini 3.1 Flash Lite · unclear. The model scored 49% without it.
- GPT-5 mini · unclear. The model scored 46% without it.
In Claude Code
- Claude Fable 5.1, Wider run, three ways · Nothing left to measure. The model scored 98% without the skill.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 19% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 86% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 45% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 95% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · Nothing left to measure. The model scored 91% without the skill.
Cost per task, with the skill loaded: about $0.00153. Adds about 5,600 tokens of context to every request.
Tied for second · shared with 3 others, and the tie is broken by nothing
skills/seo affaan-m/ECC
On-page audit
No reliable difference on any model tested. The models scored 51% without it. Measured against the same task with a one-line instruction.
Found 56% of the seeded on-page issues, against 51% with no skill loaded. Against 56% with a one-line instruction instead.
Via API
- Gemini 3.1 Flash Lite · unclear. The model scored 49% without it.
- GPT-5 mini · unclear. The model scored 54% without it.
In Claude Code
- Claude Fable 5, First run, single attempt · Nothing left to measure. The model scored 94% without the skill.
- Claude Opus 5, First run, single attempt · unclear. The model scored 87% without it.
- Claude Fable 5, Second run, every task twice · unclear. The model scored 87% without it.
- Claude Haiku 4.5, Second run, every task twice · unclear. The model scored 21% without it.
- Claude Opus 5, Second run, every task twice · unclear. The model scored 89% without it.
- Claude Sonnet 5, Second run, every task twice · unclear. The model scored 59% without it.
- Claude Fable 5.1, Fable 5.1, single attempt · Nothing left to measure. The model scored 98% without the skill.
- Claude Fable 5.1, Wider run, three ways · Nothing left to measure. The model scored 98% without the skill.
- Claude Haiku 4.5, Wider run, three ways · unclear. The model scored 24% without it.
- Claude Opus 5, Wider run, three ways · unclear. The model scored 89% without it.
- Claude Sonnet 5, Wider run, three ways · unclear. The model scored 48% without it.
- Claude Fable 5, Fable 5, wider run, three ways · Nothing left to measure. The model scored 93% without the skill.
- Claude Opus 5.5, Opus 5.5 series, wider run, three ways · Nothing left to measure. The model scored 98% without the skill.
Cost per task, with the skill loaded: about $0.000505. Adds about 1,600 tokens of context to every request.
The numbers
How to read these tables
How to read these tables
- Without the skill
- The score on the task set before any skill was loaded. Where this is already near the top of the scale, there was little room for a skill to show an effect, and the result says so instead of reporting no difference.
- Without -> with
- The score on the task set with no skill loaded, then with the skill loaded. For classes scored against an answer key, this is the share of seeded items found. For classes scored by blind comparison, it is how often a grader preferred the skill's output over the baseline's, with the baseline shown as the complement.
- Effect (range)
- With minus without, averaged over the models tested, with the lowest and highest per-model value in brackets. Per-model intervals are on each skill's page.
- Result
- helped: delta at or above the pass threshold, and the interval excludes zero
- worse: delta at or below the failure floor, and the interval excludes zero
- unclear: the interval spans zero, or the delta sits between the floor and the threshold
- not measured: the cell cannot be classified: sub-case (a) an unbounded scale, or sub-case (b) both arms at the same bound
A fifth value, Decaying, is defined and appears once a skill has been re-tested: a cell previously Stable that has fallen below the pass threshold on a later run.
- Cohort
- The repository that publishes the skill. Rows marked with an asterisk come from the repository the operator of this site maintains, so those are the operator measuring its own work. The rest were chosen by a stated rule and not by preference.
- Commit
- The exact version tested. Later commits are not covered by this verdict.
- Injected context tokens
- How much text the skill adds to the model's context. This is cost, not quality; a bigger number is not a better one. Measured from the input tokens the API reported on the with arm, averaged over that skill's records.
- Tested
- The date. Verdicts age as models change.
On-page audit
Each figure is how many points the skill added over no skill on that model, at the tier shown. A ring marks a clear lift. “Nothing left to measure” means the model already scored 90% or more with no skill.
Via API
From one run: first run, with and without the skill. One other run is in the tables below.
| Skill | Claude Haiku 4.5 | GPT-5 mini | Gemini 3.1 Flash Lite |
|---|---|---|---|
| SEO onpage | +23 points unclear tier 1 | +4 points unclear tier 1 | +22 points helped tier 1 |
| SEO | 0 points unclear tier 1 | +3 points unclear tier 1 | +12 points unclear tier 1 |
| SEO audit | not run | in another run | in another run |
In Claude Code
From one run: wider run, three ways. 5 other runs are in the tables below.
| Skill | Claude Haiku 4.5 | Claude Fable 5.1 | Claude Opus 5 | Claude Sonnet 5 |
|---|---|---|---|---|
| SEO onpage | +15 points unclear tier 1 | nothing left to measure 95% with no skill, tier 1 | −10 points unclear tier 1 | −3 points unclear tier 1 |
| SEO | +12 points unclear tier 1 | nothing left to measure 98% with no skill, tier 1 | −10 points unclear tier 1 | +18 points unclear tier 1 |
| SEO audit | +20 points unclear tier 1 | nothing left to measure 98% with no skill, tier 1 | −2 points unclear tier 1 | +20 points helped tier 1 |
| Skill | Cohort | Without the skill | Without -> with | Effect (range) | Result | Injected context tokens | Tested |
|---|---|---|---|---|---|---|---|
| No skill loaded First run, with and without the skill | baseline | 39% | 39% | 0 by definition | 0 | 2026-08-30 | |
| One-line instruction instead First run, with and without the skill | baseline | instruction arm: not measured | 0 by definition | 0 | 2026-08-30 | ||
skills/seo-onpage from rampstackco/claude-skills in the catalog 047924252254 First run, with and without the skill Best result in this test | rampstackco/claude-skills* | 39% | 39% -> 56% | +0.17 [+0.04, +0.23] | unclear on 2 of 3 | 6,184 | 2026-08-30 |
skills/seo from affaan-m/ECC d8409a4b0813 First run, with and without the skill | affaan-m/ECC | 39% | 39% -> 44% | +0.05 [+0.00, +0.12] | unclear | 1,637 | 2026-08-30 |
| No skill loaded Wider run, three ways | baseline | 51% | 51% | 0 by definition | 0 | 2026-09-05 | |
| One-line instruction instead Wider run, three ways | baseline | 55% | 0 by definition | 0 | 2026-09-05 | ||
skills/seo-onpage from rampstackco/claude-skills in the catalog 047924252254 Wider run, three ways Best result in this test | rampstackco/claude-skills* | 53% | 53% -> 63% | +0.10 [+0.08, +0.13] | unclear | 5,975 | 2026-09-05 |
marketing-skill/skills/seo-audit from alirezarezvani/claude-skills 19392f7a0826 Wider run, three ways | alirezarezvani/claude-skills | 47% | 47% -> 58% | +0.02 [-0.04, +0.07] | unclear | 5,625 | 2026-09-05 |
skills/seo from affaan-m/ECC d8409a4b0813 Wider run, three ways | affaan-m/ECC | 51% | 51% -> 56% | -0.00 [-0.06, +0.05] | unclear | 1,578 | 2026-09-05 |
| Averaged over three models; per-model results on each skill's page. Ranked within this class only. | |||||||
How hard were the tasks
We built two harder versions of this test. Every model answered each page six times, with no skill loaded. Each figure is the share of planted problems found, averaged over ten pages. Beside it is the range the score would likely fall in on another try.
- Tier 1, the original ten pages
- Tier 2, issues that only show across pages
- Tier 3, issues beside patterns that are not issues
In Claude Code
| Model | Tier 1 | Tier 2 | Tier 3 | Next test uses |
|---|---|---|---|---|
| Claude Opus 5 | 79% (66 to 93%) | 100% (100 to 100%) | 96% (93 to 99%) | Tier 3, the hardest, though no tier leaves it room |
| Claude Sonnet 5 | 56% (46 to 67%) | 84% (76 to 92%) | 69% (57 to 82%) | Tier 3 |
| Claude Haiku 4.5 | 26% (10 to 41%) | 71% (49 to 94%) | 61% (53 to 69%) | Tier 3 |
| Claude Fable 5.1 | 92% (85 to 99%) | 100% (100 to 100%) | 100% (100 to 100%) | Tier 3, the hardest, though no tier leaves it room |
Via API
| Model | Tier 1 | Tier 2 | Tier 3 | Next test uses |
|---|---|---|---|---|
| GPT-5 mini | 42% (30 to 53%) | 74% (60 to 88%) | 49% (34 to 65%) | Tier 3 |
| Gemini 3.1 Flash Lite | 49% (27 to 70%) | 72% (55 to 88%) | 63% (43 to 84%) | Tier 3 |
Opus 5.5, a later run
A later run asked Opus 5.5 every task on all three tiers, six times each, with no skill loaded. Its figures are its own and are not added to the table above.
| Model | Tier 1 | Tier 2 | Tier 3 | Next test uses |
|---|---|---|---|---|
| Claude Opus 5.5 | 92% (84 to 100%) | 100% (100 to 100%) | 100% (100 to 100%) | Tier 3, the hardest, though no tier leaves it room |
No tier leaves Opus 5.5 room: with no skill loaded it scored above 70% on all three. So it takes the hardest, tier 3, where it scored 100%.
Each model's next tier comes from its own three scores, so these are listed side by side, not ranked.
- Claude Opus 5: Tier 3, the hardest, though no tier leaves it room
- Claude Fable 5.1: Tier 3, the hardest, though no tier leaves it room
- Claude Opus 5.5: Tier 3, the hardest, though no tier leaves it room
Did tier 1 hold up for Opus 5.5
Tier 1 here is the same set of tasks Opus 5.5 answered in its skills test a few days earlier. Its new score, 92% (84 to 100%), landed within the likely range of that earlier one, 93% (86 to 100%). This is a check on the tasks, and it changes no pick.
Each model takes its next skills test at its own tier: the one where its score, with no skill loaded, leaves room to improve. A model that scores high everywhere gets the hardest tier. So a skill's result can be compared with other skills on the same model, but not used to rank one model against another, because the models did different work.
Tier 1 is the same ten pages the skills test used, asked again. On 6 of 6 models the new score landed within the likely range of the earlier one.
Ranked within this topic by how many models the rule found a clear effect on, which is a count of verdicts and never the size of one. Two classes are two answer keys on two scales, so no effect here is compared with another. Every class, with its full table.