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
    • Gemini 3.1 Flash Lite · helped
    • GPT-5 mini · unclear

    In Claude Code

    • Claude Fable 5, First run, single attempt · unclear
    • Claude Opus 5, First run, single attempt · unclear
    • Claude Fable 5, Second run, every task twice · unclear
    • Claude Haiku 4.5, Second run, every task twice · unclear
    • Claude Opus 5, Second run, every task twice · unclear
    • Claude Sonnet 5, Second run, every task twice · unclear
    • Claude Fable 5.1, Fable 5.1, single attempt · unclear
    • Claude Fable 5.1, Wider run, three ways · unclear
    • Claude Haiku 4.5, Wider run, three ways · unclear
    • Claude Opus 5, Wider run, three ways · unclear
    • Claude Sonnet 5, Wider run, three ways · unclear

    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. 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
    • GPT-5 mini · unclear

    In Claude Code

    • Claude Fable 5, First run, single attempt · unclear
    • Claude Opus 5, First run, single attempt · unclear
    • Claude Fable 5, Second run, every task twice · unclear
    • Claude Haiku 4.5, Second run, every task twice · unclear
    • Claude Opus 5, Second run, every task twice · unclear
    • Claude Sonnet 5, Second run, every task twice · unclear
    • Claude Fable 5.1, Fable 5.1, single attempt · unclear
    • Claude Fable 5.1, Wider run, three ways · unclear
    • Claude Haiku 4.5, Wider run, three ways · unclear
    • Claude Opus 5, Wider run, three ways · unclear
    • Claude Sonnet 5, Wider run, three ways · unclear

    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. 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
    • Gemini 3.1 Flash Lite · unclear
    • GPT-5 mini · unclear

    In Claude Code

    • Claude Fable 5, First run, single attempt · unclear
    • Claude Opus 5, First run, single attempt · unclear
    • Claude Fable 5, Second run, every task twice · unclear
    • Claude Haiku 4.5, Second run, every task twice · unclear
    • Claude Opus 5, Second run, every task twice · unclear
    • Claude Sonnet 5, Second run, every task twice · unclear
    • Claude Fable 5.1, Fable 5.1, single attempt · unclear
    • Claude Fable 5.1, Wider run, three ways · unclear
    • Claude Haiku 4.5, Wider run, three ways · unclear
    • Claude Opus 5, Wider run, three ways · unclear
    • Claude Sonnet 5, Wider run, three ways · unclear

    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. 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
    • GPT-5 mini · unclear

    In Claude Code

    • Claude Fable 5.1, Wider run, three ways · unclear
    • Claude Haiku 4.5, Wider run, three ways · unclear
    • Claude Opus 5, Wider run, three ways · unclear
    • Claude Sonnet 5, Wider run, three ways · unclear

    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. 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
    • GPT-5 mini · unclear

    In Claude Code

    • Claude Fable 5, First run, single attempt · unclear
    • Claude Opus 5, First run, single attempt · unclear
    • Claude Fable 5, Second run, every task twice · unclear
    • Claude Haiku 4.5, Second run, every task twice · unclear
    • Claude Opus 5, Second run, every task twice · unclear
    • Claude Sonnet 5, Second run, every task twice · unclear
    • Claude Fable 5.1, Fable 5.1, single attempt · unclear
    • Claude Fable 5.1, Wider run, three ways · unclear
    • Claude Haiku 4.5, Wider run, three ways · unclear
    • Claude Opus 5, Wider run, three ways · unclear
    • Claude Sonnet 5, Wider run, three ways · unclear

    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 -> 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.
Orbit
  • Stable: delta at or above the pass threshold, and the interval excludes zero
  • Past the horizon: delta at or below the failure floor, and the interval excludes zero
  • In free drift: the interval spans zero, or the delta sits between the floor and the threshold
  • Unobservable: 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

With the skill and without it, per skill and model

  • Grey: the score with no skill loaded
  • Colour: the score with the skill loaded
  • Dashed tick: the score with the instruction only, where that was measured

Via API tested via API

skills/seo-onpage Gemini 3.1 Flash Lite First run, with and without the skill, Deterministic

Holds

No skill: 0.488. With the skill: 0.707. Change +0.219. It could sit between +0.046 and +0.392.

skills/seo-onpage Gemini 3.1 Flash Lite Wider run, three ways, Deterministic

No measured effect

No skill: 0.488. With the skill: 0.682. Instruction only: 0.556. Change +0.194. It could sit between +0.032 and +0.356.

marketing-skill/skills/seo-audit Gemini 3.1 Flash Lite Wider run, three ways, Deterministic

No measured effect

No skill: 0.488. With the skill: 0.626. Instruction only: 0.556. Change +0.138. It could sit between -0.025 and +0.301.

skills/seo Gemini 3.1 Flash Lite Wider run, three ways, Deterministic

No measured effect

No skill: 0.488. With the skill: 0.610. Instruction only: 0.556. Change +0.122. It could sit between -0.054 and +0.297.

skills/seo Gemini 3.1 Flash Lite First run, with and without the skill, Deterministic

No measured effect

No skill: 0.488. With the skill: 0.610. Change +0.122. It could sit between -0.054 and +0.297.

skills/seo-onpage GPT-5 mini Wider run, three ways, Deterministic

No measured effect

No skill: 0.575. With the skill: 0.575. Instruction only: 0.495. Change -0.000. It could sit between -0.200 and +0.199.

marketing-skill/skills/seo-audit GPT-5 mini Wider run, three ways, Deterministic

No measured effect

No skill: 0.455. With the skill: 0.534. Instruction only: 0.570. Change +0.079. It could sit between -0.051 and +0.208.

skills/seo GPT-5 mini Wider run, three ways, Deterministic

No measured effect

No skill: 0.536. With the skill: 0.503. Instruction only: 0.561. Change -0.033. It could sit between -0.140 and +0.073.

skills/seo-onpage GPT-5 mini First run, with and without the skill, Deterministic

No measured effect

No skill: 0.450. With the skill: 0.492. Change +0.041. It could sit between -0.135 and +0.218.

skills/seo GPT-5 mini First run, with and without the skill, Deterministic

No measured effect

No skill: 0.448. With the skill: 0.480. Change +0.032. It could sit between -0.161 and +0.225.

skills/seo-onpage Claude Haiku 4.5 First run, with and without the skill, Deterministic

No measured effect

No skill: 0.239. With the skill: 0.474. Change +0.235. It could sit between -0.032 and +0.501.

skills/seo Claude Haiku 4.5 First run, with and without the skill, Deterministic

No measured effect

No skill: 0.239. With the skill: 0.239. Change +0.000. It could sit between -0.146 and +0.146.

In Claude Code tested in Claude Code

skills/seo-onpage Claude Fable 5.1 Wider run, three ways, Deterministic

No measured effect

No skill: 0.930. With the skill: 0.983. Change +0.054. It could sit between -0.017 and +0.124.

marketing-skill/skills/seo-audit Claude Fable 5.1 Wider run, three ways, Deterministic

No measured effect

No skill: 0.950. With the skill: 0.950. Change +0.000. It could sit between +0.000 and +0.000.

skills/seo Claude Fable 5.1 Wider run, three ways, Deterministic

No measured effect

No skill: 0.888. With the skill: 0.950. Change +0.062. It could sit between -0.074 and +0.198.

skills/seo Claude Fable 5.1 Fable 5.1, single attempt, Deterministic

No measured effect

No skill: 0.983. With the skill: 0.950. Change -0.033. It could sit between -0.099 and +0.032.

skills/seo-onpage Claude Fable 5.1 Fable 5.1, single attempt, Deterministic

No measured effect

No skill: 0.983. With the skill: 0.950. Change -0.033. It could sit between -0.099 and +0.032.

skills/seo Claude Fable 5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.867. With the skill: 0.940. Change +0.073. It could sit between -0.015 and +0.162.

skills/seo-onpage Claude Fable 5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.894. With the skill: 0.938. Change +0.043. It could sit between -0.000 and +0.087.

skills/seo Claude Fable 5 First run, single attempt, Deterministic

No measured effect

No skill: 0.942. With the skill: 0.933. Change -0.008. It could sit between -0.094 and +0.078.

skills/seo-onpage Claude Fable 5 First run, single attempt, Deterministic

No measured effect

No skill: 0.905. With the skill: 0.925. Change +0.020. It could sit between -0.064 and +0.105.

marketing-skill/skills/seo-audit Claude Opus 5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.867. With the skill: 0.833. Change -0.033. It could sit between -0.143 and +0.076.

skills/seo-onpage Claude Opus 5 First run, single attempt, Deterministic

No measured effect

No skill: 0.892. With the skill: 0.833. Change -0.058. It could sit between -0.187 and +0.071.

skills/seo-onpage Claude Opus 5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.879. With the skill: 0.833. Change -0.046. It could sit between -0.113 and +0.021.

skills/seo Claude Opus 5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.892. With the skill: 0.832. Change -0.060. It could sit between -0.161 and +0.040.

skills/seo Claude Opus 5 First run, single attempt, Deterministic

No measured effect

No skill: 0.867. With the skill: 0.805. Change -0.062. It could sit between -0.143 and +0.019.

skills/seo-onpage Claude Opus 5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.833. With the skill: 0.792. Change -0.042. It could sit between -0.178 and +0.094.

skills/seo Claude Opus 5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.867. With the skill: 0.788. Change -0.079. It could sit between -0.161 and +0.004.

skills/seo Claude Sonnet 5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.601. With the skill: 0.665. Change +0.064. It could sit between -0.108 and +0.236.

marketing-skill/skills/seo-audit Claude Sonnet 5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.556. With the skill: 0.654. Change +0.097. It could sit between -0.057 and +0.251.

skills/seo Claude Sonnet 5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.594. With the skill: 0.647. Change +0.053. It could sit between -0.029 and +0.136.

skills/seo-onpage Claude Sonnet 5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.586. With the skill: 0.637. Change +0.051. It could sit between -0.039 and +0.141.

skills/seo-onpage Claude Sonnet 5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.554. With the skill: 0.629. Change +0.075. It could sit between -0.030 and +0.180.

skills/seo-onpage Claude Haiku 4.5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.435. With the skill: 0.411. Change -0.023. It could sit between -0.214 and +0.168.

skills/seo-onpage Claude Haiku 4.5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.248. With the skill: 0.408. Change +0.161. It could sit between +0.035 and +0.286.

marketing-skill/skills/seo-audit Claude Haiku 4.5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.368. With the skill: 0.389. Change +0.021. It could sit between -0.302 and +0.345.

skills/seo Claude Haiku 4.5 Wider run, three ways, Deterministic

No measured effect

No skill: 0.343. With the skill: 0.363. Change +0.020. It could sit between -0.203 and +0.242.

skills/seo Claude Haiku 4.5 Second run, every task twice, Deterministic

No measured effect

No skill: 0.214. With the skill: 0.323. Change +0.108. It could sit between -0.040 and +0.257.

deterministic pass rate, 0 to 1 Each row is one skill on one model. The grey bar is the score with no skill loaded. The coloured bar is the score with it. The bracket shows how much the change could move if we ran it again. It starts at the grey bar, so it covers where the coloured bar could have ended. The two test methods are measured on their own and never ranked against each other. Every figure drawn here is printed beside its row. A dashed upright marks the score with the instruction only. Rows without one are rows where that was not measured, and no mark stands in for it. A bracket wider than the scale is drawn to the edge with its cap left off. The table below gives its two ends.
SkillCohortWithout -> withEffect (range)OrbitInjected context tokensTested
No skill loaded First run, with and without the skillbaseline39%0 by definition02026-08-30
One-line instruction instead First run, with and without the skillbaselineinstruction arm: not measured0 by definition02026-08-30
skills/seo-onpage from rampstackco/claude-skills 047924252254 First run, with and without the skill Best result in this testrampstackco/claude-skills*39% -> 56%+0.17 [+0.04, +0.23]In free drift on 2 of 36,1842026-08-30
skills/seo from affaan-m/ECC d8409a4b0813 First run, with and without the skillaffaan-m/ECC39% -> 44%+0.05 [+0.00, +0.12]In free drift1,6372026-08-30
No skill loaded Wider run, three waysbaseline51%0 by definition02026-09-05
One-line instruction instead Wider run, three waysbaseline55%0 by definition02026-09-05
skills/seo-onpage from rampstackco/claude-skills 047924252254 Wider run, three ways Best result in this testrampstackco/claude-skills*53% -> 63%+0.10 [+0.08, +0.13]In free drift5,9752026-09-05
marketing-skill/skills/seo-audit from alirezarezvani/claude-skills 19392f7a0826 Wider run, three waysalirezarezvani/claude-skills47% -> 58%+0.02 [-0.04, +0.07]In free drift5,6252026-09-05
skills/seo from affaan-m/ECC d8409a4b0813 Wider run, three waysaffaan-m/ECC51% -> 56%-0.00 [-0.06, +0.05]In free drift1,5782026-09-05
Averaged over three models; per-model results on each skill's page. Ranked within this class only.

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.

* rampstackco/claude-skills is maintained by the operator of OpenAddict.com.