← All posts
SEO case study8 min read

Fable is overrated. Real data wins.

The rule first, then the case study: a model gives you the average of the internet, and real, measured data beats the average. That holds anywhere you can measure the outcome. We will show it in SEO, because that is what we run and because Search Console tells you, to the click, whether you were right. It is not really about SEO.

We build Orchestra and run SEO on a portfolio of data-heavy sites. Ask any model how to rank and you get the same checklist every time. It is not wrong. It is just the same checklist your competitor got for free, which is why following it does not move you. Here is what does, with real numbers.


Part 1 · The advice every model gives you

The generic checklist gets you to parity, not ahead

Prompt Fable, GPT, or Gemini with “how do I rank this page” and you get some version of this:

  • Write helpful content that matches search intent.
  • Use your target keywords in the title, headings, and body.
  • Improve page speed and Core Web Vitals; be mobile-friendly.
  • Earn backlinks and build domain authority.
  • Add structured data, internal links, and a good meta description.
  • Show E-E-A-T and keep content fresh.

Every line is true. That is the problem. It is the same advice everyone else can get for free, so following it lands you in the same place as everyone else. Parity, not an edge.

One item is usually just wrong: build domain authority. Models reach for it because “you need more backlinks” is the most common explanation in their training data. But we regularly see domains with a Domain Rating of 1, effectively no backlinks, sitting on page one. If a DR 1 page outranks you, backlinks are not your problem. The model cannot know that, because it never looked at the actual results.


Part 2 · How you actually beat it

Use the model on real data, not its memory

The model is still useful. You just feed it measured data instead of asking what it remembers. Four moves, roughly in order of payoff.

1. Make the model read the SERP

Its ideas come from training data, not from today’s results. So fetch reality first: pull the live top 10 for your term, download those pages, and have the model summarise what they cover, how they are structured, and what they miss. Now the gaps are real gaps, not guesses.

bashGive the model the real top 10, then ask what is missing
# DataForSEO live SERP (localised), top 10 organic for the term
curl -s -u "$LOGIN:$PASS" \
  https://api.dataforseo.com/v3/serp/google/organic/live/regular \
  -d '[{ "keyword": "hvac companies canada", "location_code": 2124, "language_code": "en", "depth": 10 }]'

# → rank, domain, title, url for each result. Fetch those 10 URLs,
# then ask the model to summarise them and list what none of them cover.

2. Mine Search Console for near-wins

Your cheapest wins are pages that already rank on page one or two, get real impressions, and convert almost none of them. Those do not need new content or backlinks. They need a better title. Filter Search Console for high impressions, position roughly 5 to 15, and weak CTR. That is your worklist, sorted by how much traffic sits one change away.

3. The title is the biggest lever

Across our experiments the meta title returns more than any other change. In one test we changed only the title and H1 on 24 low-CTR pages, nothing else, to isolate the effect:

+55%
Clicks (229 → 355), 28 days
+69%
CTR (0.45% → 0.76%)
17 / 24
Pages that improved

The biggest winner just dropped the boilerplate. “Top 50 Largest HVAC Companies Canada” became “Top HVAC Companies in Canada,” and that page went from 12.8 to 165 clicks a month. We then ran the same idea across 979 pages:

ChangeClicksCTRAvg position
24 low-CTR pages, title + H1 only229 → 355 (+55%)0.45% → 0.76%mixed
HVAC Canada (single page)12.8 → 165 (+1,189%)n/a6.8 → 5.6
979 pages, stripped "Top 50" prefix1,287 → 1,575 (+22%)0.91% → 1.01%12.68 → 11.45
50 pages, added industry name + "(2026)"749 → 848 (+13%)n/aimpr +33%
Title-only changes. Same pages, same content, measured before vs after.

Shorter, cleaner, intent-matched titles beat longer keyword-stuffed ones. A model, asked in the abstract, will tell you to add keywords. The data says the opposite more often than not.

4. Titles cut both ways, so measure per page

No model will warn you about this, because it cannot see the outcome. That same 979-page rewrite lifted clicks 22% in aggregate but dropped about one page in ten by three or more positions. The worst fell from 15.6 to 40.9. Pick the wrong title for a page and you lose ground you already held.

So treat every title change as a test. Apply it, watch each URL in Search Console for about 28 days, keep the winners, revert the losers. The model proposes; the data decides.

Keyword choice still matters, as a data question

Pick the keyword from measured volume and real intent, not from what sounds biggest. We chose head nouns like wholesalers, suppliers, and manufacturers over higher-volume consumer terms (“taxi services,” “cleaning services”) because the volume was real but the intent did not match a B2B directory. DataForSEO gives you the volume; the SERP tells you the intent.

Freshness helps, but not the way the advice says

Every model tells you to refresh content for freshness. We ran the controlled version: ten pages, same content depth, split into groups.

TreatmentImpressionsPosition
Content + internal links + resubmit to GSC+249%31.4 → 20.3
Same content, no links, no resubmit−96% (clicks 4 → 0)no lift
Untouched control−62%no lift
Content-refresh experiment, 10 pages, 9-day before vs after windows.

Content alone did nothing. The page that got fresh content but no internal links and no resubmit lost 96% of its impressions. The lift came from the links and the resubmit. A title-level freshness signal did work on its own: adding the year and industry name to 50 pages moved clicks +13% and impressions +33%. Freshness is real; the generic advice just points at the wrong mechanism.


Part 3 · The account, five months in

What this did to the whole property

We started this approach in February. The account had bottomed out: it peaked over 2,000 clicks a day a year earlier, then slid to about 500 a day by late February 2026. Then we ran the playbook above, read the SERP, mined Search Console, fixed titles, measured, kept what worked, on repeat.

Google Search Console weekly clicks chart with the week of 22-28 February 2026 highlighted at 3,185 clicks, the low point of the curve.
Late February 2026, the low point: about 3,185 clicks that week, roughly 500 a day.

Five months later the same property is back over 1,000 clicks a day and climbing toward the old peak, with the best days near 1,500. The most recent full week ran 7,610 clicks, more than double the February low. Across the whole window: 132K clicks and 15.8M impressions.

Google Search Console weekly clicks chart with the week of 28 June to 4 July 2026 highlighted at 7,610 clicks, at the top of a rising curve.
Early July 2026: 7,610 clicks that week, over 1,000 a day and rising. 132K clicks and 15.8M impressions across February to July.

Part 4 · The writing trap

Generated copy is the median of the internet

This is where teams lose the gains. They do the research, then let the model write the page, and a model writing from its own weights produces the median: the same phrasings, the same headings, the same points as every competitor who did the same thing. That is not an edge.

The edge is unique inputs: your own experiment results, first-party numbers, original SERP analysis, a specific opinion. A page built on data no one else has is a page no model can generate for your competitor. Feed the model those inputs and use it to structure and edit, not to supply the substance.


The case study was SEO. The rule is not

All of the above is SEO, but the lesson is not. A model is good at synthesising data you give it and bad as an oracle for data you do not. Its unprompted advice, in any field, is generic, and generic advice moves everyone to the same square. In SEO the edge was measured data: the live SERP, your Search Console, your own before-and-after tests. Swap in your own domain and the shape holds. Where you can measure the outcome, treat the model as the hypothesis and the data as the answer.

Orchestra

Describe what you want. An agent implements it, opens a PR, and the change is validated against real production, not a mock.

Request access