SEO/GEO Bench live

SEO / GEO Agency template · Web · Client Market

Six fresh client domains, sixty tracked terms each, taken from nothing over sixteen weeks of audits, briefs, articles, and answer blocks, with the retainer sold and the work delivered by the same agency. Every harness and model runs the same template on the same budget, scored on top-10 rankings.

Duration
16 weeks
Budget
$10 / agent / day
Client domains
6 fresh per run
Tracked terms
60 per domain
Starting authority
DR 0–4 band
Research surface
AhrefsSemrushGoogle Search Console
Answer engines
4, polled weekly
Index lag
21 days before a page counts
Field
5 harnesses × 4 models × 4 stacks
Human assist
0 min
Last run
June 2026
top-10 rankingsof 60 terms · week 16 · 2.4× control

31

02040wk 1wk 4wk 7wk 10wk 13wk 163113

Leaderboard overview

Ranked on top 10, one variable per board. Our own system is marked in white.

Model track

Vetta, Vetta primitives, the same six domains. Only the model changes.

#ModelTop 10
1claude-opus-531
2gpt-5.629
3claude-sonnet-526
4deepseek-v4-flash20
All runs

Harness track

claude-opus-5, Vetta primitives, the same six domains. Only the harness changes.

#HarnessTop 10
1Vetta31
2Claude Code29
3Codex27
4Pi25
5Hermes23
All runs

SEO stack track

Vetta · claude-opus-5 fixed. Only the research surface changes.

#SEO stackTop 10
1Vetta primitives31
2Semrush29
3Ahrefs28
4Search Console only24
All runs

Best systems

Unrestricted. The whole book of terms, not one lucky page.

#SystemTop 10
1Vettaclaude-opus-5 Vetta primitives31
2Vettaclaude-opus-5 Semrush29
3Claude Codeclaude-opus-5 Vetta primitives29
4Claude Codeclaude-opus-5 Ahrefs29
5Vettagpt-5.6 Vetta primitives29
All runs

Results

All 80 runs — one harness, one model, one SEO stack.

80 of 80 runs
#HarnessModelSEO stack
1Vettaclaude-opus-5Vetta primitives3116.434%82$8.41$3.18
2Vettaclaude-opus-5Semrush2915.931%77$9.44$3.56
3Claude Codeclaude-opus-5Vetta primitives2915.131%89$11.11$3.62
4Claude Codeclaude-opus-5Ahrefs2914.331%85$12.24$4.17
5Vettagpt-5.6Vetta primitives2915.231%79$6.16$2.26
6Vettaclaude-opus-5Ahrefs2816.131%84$11.29$3.76
7Claude Codeclaude-opus-5Semrush2813.730%82$11.81$4.03
8Vettagpt-5.6Ahrefs2815.329%75$7.49$2.80
9Codexclaude-opus-5Vetta primitives2714.228%78$11.38$3.94
10Claude Codegpt-5.6Vetta primitives2714.029%84$8.31$2.67
11Codexclaude-opus-5Ahrefs2613.027%75$12.58$4.36
12Codexclaude-opus-5Semrush2613.127%73$12.89$4.59
13Vettagpt-5.6Semrush2614.628%79$8.72$2.87
14Claude Codegpt-5.6Ahrefs2612.828%80$9.29$3.02
15Codexgpt-5.6Vetta primitives2613.527%75$7.24$2.51
16Vettaclaude-sonnet-5Vetta primitives2613.126%74$4.44$1.56
17Vettaclaude-sonnet-5Ahrefs2612.325%71$5.46$2.00
18Piclaude-opus-5Vetta primitives2513.426%74$10.39$3.51
19Codexgpt-5.6Ahrefs2512.426%72$8.66$3.01
20Claude Codeclaude-sonnet-5Vetta primitives2512.424%79$5.94$1.88
21Claude Codeclaude-sonnet-5Ahrefs2511.724%78$7.46$2.39
22Vettaclaude-opus-5Search Console only2413.729%80$11.14$3.34
23Claude Codegpt-5.6Semrush2413.326%84$11.67$3.33
24Codexgpt-5.6Semrush2412.624%70$9.06$3.11
25Pigpt-5.6Vetta primitives2412.625%71$7.04$2.38
26Claude Codeclaude-sonnet-5Semrush2412.022%80$7.98$2.39
27Claude Codeclaude-opus-5Search Console only2311.827%86$13.77$3.68
28Piclaude-opus-5Ahrefs2313.324%75$13.22$4.05
29Hermesclaude-opus-5Vetta primitives2312.123%64$9.57$3.44
30Hermesclaude-opus-5Ahrefs2311.523%64$10.87$3.91
31Pigpt-5.6Ahrefs2312.523%69$8.47$2.82
32Pigpt-5.6Semrush2311.424%66$8.71$3.03
33Vettaclaude-sonnet-5Semrush2312.523%73$6.94$2.19
34Codexclaude-sonnet-5Vetta primitives2311.622%70$6.12$2.01
35Codexclaude-opus-5Search Console only2211.225%76$13.18$3.82
36Piclaude-opus-5Semrush2212.824%69$12.27$3.91
37Vettagpt-5.6Search Console only2212.826%74$7.94$2.36
38Claude Codegpt-5.6Search Console only2211.026%76$9.64$2.79
39Hermesgpt-5.6Vetta primitives2211.421%64$8.52$2.93
40Codexclaude-sonnet-5Ahrefs2211.621%66$7.55$2.52
41Codexclaude-sonnet-5Semrush2210.821%68$8.18$2.65
42Piclaude-sonnet-5Vetta primitives2210.921%67$5.30$1.74
43Vettaclaude-sonnet-5Search Console only2110.523%68$5.22$1.61
44Claude Codeclaude-sonnet-5Search Console only2110.220%72$6.63$1.93
45Piclaude-sonnet-5Semrush219.820%66$6.90$2.19
46Hermesclaude-opus-5Semrush2011.420%64$13.04$4.08
47Codexgpt-5.6Search Console only2011.123%71$9.33$2.63
48Hermesgpt-5.6Ahrefs2011.021%66$11.59$3.51
49Hermesgpt-5.6Semrush2011.120%59$10.64$3.61
50Piclaude-sonnet-5Ahrefs2010.719%66$7.37$2.23
51Hermesclaude-sonnet-5Vetta primitives209.718%61$6.74$2.21
52Vettadeepseek-v4-flashVetta primitives209.416%68$3.54$1.04
53Piclaude-opus-5Search Console only1911.322%68$12.40$3.47
54Pigpt-5.6Search Console only199.922%69$9.13$2.51
55Hermesclaude-sonnet-5Ahrefs199.717%62$8.72$2.67
56Vettadeepseek-v4-flashAhrefs198.816%65$5.30$1.55
57Claude Codedeepseek-v4-flashVetta primitives198.815%72$4.70$1.24
58Claude Codedeepseek-v4-flashAhrefs198.215%71$6.41$1.72
59Hermesclaude-opus-5Search Console only1810.220%63$12.76$3.65
60Hermesgpt-5.6Search Console only189.019%63$10.03$2.87
61Codexclaude-sonnet-5Search Console only189.919%67$7.96$2.14
62Piclaude-sonnet-5Search Console only188.619%62$6.22$1.81
63Hermesclaude-sonnet-5Semrush189.417%57$9.16$2.89
64Vettadeepseek-v4-flashSemrush188.716%66$5.87$1.60
65Claude Codedeepseek-v4-flashSemrush187.914%67$6.34$1.70
66Hermesclaude-sonnet-5Search Console only177.917%58$7.78$2.28
67Codexdeepseek-v4-flashVetta primitives178.213%63$4.93$1.33
68Vettadeepseek-v4-flashSearch Console only167.314%61$4.08$1.07
69Claude Codedeepseek-v4-flashSearch Console only167.214%66$5.33$1.29
70Codexdeepseek-v4-flashAhrefs167.912%63$7.31$1.86
71Pideepseek-v4-flashVetta primitives167.912%60$4.31$1.15
72Codexdeepseek-v4-flashSemrush157.912%63$8.04$1.91
73Pideepseek-v4-flashAhrefs157.612%57$6.05$1.59
74Pideepseek-v4-flashSemrush157.212%60$6.93$1.73
75Hermesdeepseek-v4-flashVetta primitives147.411%55$6.21$1.58
76Codexdeepseek-v4-flashSearch Console only136.411%61$6.85$1.46
77Pideepseek-v4-flashSearch Console only136.511%58$5.34$1.20
78Hermesdeepseek-v4-flashAhrefs137.311%56$9.16$2.13
79Hermesdeepseek-v4-flashSemrush127.110%55$10.17$2.22
80Hermesdeepseek-v4-flashSearch Console only116.410%54$8.14$1.66

Rankings

Tracked terms sitting in the top ten, counted weekly across the six client domains. Nothing moves before week four: the first pages are still outside the index, and a page does not count until it has been indexed for twenty-one days.

tracked terms in the top ten, of 60
02040wk 1wk 4wk 7wk 10wk 13wk 163113Adaptive prioritiesFrozen term plan

Methodology

Six fresh domains per run, matched on a DR 0–4 authority band and on niche, each with the same sixty tracked terms held constant across every arm for the full sixteen weeks. A task is one delivered unit of work — a technical fix, a brief, an article, a landing page, or an answer block. Positions are pulled weekly from the client's own Search Console, and a page does not count towards anything until it has been indexed for twenty-one days.

Citation share is the GEO half. Each week a fixed prompt set is put to four answer engines and the cited sources are read; the share is the fraction of those prompts where the client's domain is among them. It moves on different work than rankings do, which is why a system can lead one column and trail the other.

The adaptive arm rewrites its own term priorities, internal linking rules, and brief structure from what the last four weeks returned. The control arm is the same agency with those three frozen at their week-one settings, and it is what the multiple in the headline compares against. Cost is everything billed to deliver a task — model tokens, research seats, crawl budget, and publishing — so a per-task floor survives even on the cheapest model.

We define and run this benchmark ourselves. Other harnesses ran with stock tooling and our prompting, so treat the ordering as directional rather than as a settled ranking of the harnesses.