Growth experimentsChapter V / Ryder SEO

The case study

I built an SEO automation tool with Claude and the articles earned 87,325 impressions.

Across 94 tracked articles, Google Search recorded 87,325 impressions and 367 clicks from August 11 through October 4, 2026. Here is how I built the workflow with Claude, the keywords those articles appeared for, and what their rankings tell us.

01 / The results

The rankings I can trace to these articles

These are exact Google Search queries matched to article URLs in our local tracker. Average position is measured over September 7 through October 4, 2026, across countries and devices. It describes the searches where a result appeared, so it is not a fixed rank for every person.

2.9average position: “is bitget wallet safe”
5.6average position: “is phantom wallet safe”
367Google Search clicks across 94 tracked URLs

Average positions cover September 7–October 4, 2026, across all countries and devices. The Bitget query recorded 89 impressions and 3 clicks; the Phantom query recorded 888 impressions and 4 clicks. These are historical averages, not current fixed ranks.

An October 7 US desktop spot-check did not find Ryder in the first-page organic results returned for the Bitget and Phantom queries above. These are historical Search Console averages; live rankings vary and need separate tracking.

Beyond the rank examples

Across 94 tracked article URLs, Google Search recorded 367 clicks and 87,325 impressions from August 11 through October 4. Fifty-nine URLs earned at least one click. Those are observed results for this group of articles, not proof of extra traffic or wallet sales caused by the workflow.

02 / The workflow

How I put the system together

The system makes it easier to repeat the research, publishing and measurement work. The decisions about what is worth saying and what can go live still matter. This is the path an article is intended to take.

The images below are five labeled captures of actual local code or drafts, one live Ryder article, and one local analysis of exported Search Console data. The source views are not screenshots of the Claude, Notion or Search Console interfaces. Select any image to see it at full size.

  1. 01

    Start with a question people are searching for

    I look for wallet questions and rising topics through Google Trends, Ahrefs and DataForSEO. A spike is only a lead: someone looking for a security explanation has a different need from someone comparing wallets before buying. The current script sorts candidates by volume; a stronger intent filter is still on my list.

    Local source excerpt showing the keyword research tool merging Ahrefs and DataForSEO volume and difficulty fields
    From seed keyword to candidate list. The real research code merges two providers; I still review the results for reader intent. Local source: keyword_research.py · Open full size ↗
  2. 02

    Have Claude prepare a draft and metadata

    Claude researches the topic and prepares a local Markdown draft with publishing details. A scheduled drafting task is configured to create three Notion cards at Idea status. That is a configured schedule, not a claim that three approved articles are published every day.

    Local Phantom wallet article Markdown draft alongside its matching SEO metadata fields
    From selected topic to staged article. This saved Phantom wallet draft has a matching title, search title, description and target keyword. Local draft and metadata files · Open full size ↗
  3. 03

    Keep a person in the approval loop

    The publishing agent selects Notion cards marked “Approved for publishing” after a person reviews the sources, product claims and answer. The publishing script itself does not recheck that status if called directly with a manifest. I treat approval as an operating rule and want to harden it in code.

    Local source excerpts showing new Notion cards created as Idea and the approval status required by the publishing instructions
    From Idea to reviewed approval. The source shows the Idea status and the publishing agent’s approval rule. This is a repository view, not a screenshot of Notion. Local source: push_to_notion_idea.py and SKILL.md · Open full size ↗
  4. 04

    Run the editorial checks

    The publisher requires a body draft, checks for a duplicate Shopify slug and runs a Python checklist for banned wording, unverified markers and product language. A failing draft stops. Those checks enforce consistency; they cannot verify every source, which is why the review step matters.

    Local prepublish checklist code detecting banned wording and incorrect product prices
    From reviewed draft to pass or fix. The checklist catches repeatable wording and product issues before the publisher proceeds. Local source: prepublish_check.py · Open full size ↗
  5. 05

    Publish and update the records

    The workflow prepares topic artwork, publishes the article and SEO metadata to Shopify, then writes its live URL and Published status back to Notion. It has a Slack announcement step, with a safeguard that can withhold the announcement when unique topic artwork is missing.

    Live Ryder blog article on the D'CENT app wallet incident, showing its title, category, date and opening paragraph
    From checked content to live page. The published D'CENT explainer is a real Ryder article in the tracked cohort. Visit the article ↗ · Screenshot captured October 7, 2026 · Open image ↗
  6. 06

    Connect it to the rest of the blog

    A separate internal-link script proposes links from older, relevant posts to the new article. It can show a dry-run plan before changes are applied, with caps of two additions per old post and eight per new target. I still want each link to help the reader.

    Local linkback code ranking relevant older posts and enforcing per-post and per-target caps
    From live article to relevant links. The source shows how candidate posts are ranked and link additions are capped. Local source: linkback_sweep.py · Open full size ↗
  7. 07

    Check what Google actually does

    The tools can submit the sitemap, inspect URLs and read Search Console queries, clicks, impressions and average positions. I match those results to the tracker instead of assuming an article worked because it was published. Submitting a sitemap cannot force indexing or ranking; the saved index log is also dated, with its latest check on September 28.

    Local analysis view of exported Search Console data showing the 94 tracked URLs, 367 clicks, 87,325 impressions and top articles
    From indexed URLs to measured results. This is the local analysis of exported Search Console data matched to the 94 tracked URLs; it is not the Search Console interface. Local source: case-study-evidence.json · Open full size ↗

03 / Article results

The three articles with the most clicks

These are the top three of the 94 tracked article URLs by Google Search clicks from August 11 through October 4, 2026. Each earned more than 10 impressions. The totals are for the whole article URL, across searches, rather than for one keyword.

0112-Word Seed Phrase Generator: Where a Safe Phrase Comes FromSome searches around phrases “with balance” have poor buyer relevance and may reflect unsafe intent.Read the live article ↗81 clicks1,841 impressions 02BitMEX and BitMart Are Shutting Down: How to Get Your Crypto OutA time-sensitive withdrawal story; traffic here does not imply hardware-wallet shopping.Read the live article ↗51 clicks19,947 impressions 03D'CENT Cold Wallet: What the App Wallet Incident Means for Hardware HoldersAn incident explainer about recovery words shared between an app and a hardware wallet.Read the live article ↗27 clicks1,906 impressions

04 / Sitewide context

Ryder’s wider search footprint

Here is Ryder’s sitewide Ahrefs view at three points: six months ago, three months ago, and now. The April and July baselines predate the tracked article window, which begins August 11. These figures show a broader change in the domain, not a change I can attribute to the automation.

Ahrefs metric6 months ago
Apr 7, 2026
3 months ago
Jul 7, 2026
Now
Oct 7, 2026
6-month change3-month change
Domain Rating404045+5+5
Backlinks≈14.7K≈21.9K23,973≈+9.3K≈+2.1K
Organic keywords131473+60+59
Referring domains3406771,166+826+489
Top-three keywords2517+15+12

Historical columns are inferred by subtracting Ahrefs’ displayed six- and three-month changes from the October 7 values; they are not separate exact API readings. Backlink changes were displayed in rounded thousands, so their earlier totals are approximate. The monthly API series separately records DR 41 on August 1 and 45 on October 1.

Domain Rating is an Ahrefs metric, not a Google score. Ahrefs warned on September 29 that changes in Google results could make some SERP data inconsistent; its keyword counts are provider estimates rather than a complete Search Console inventory.

A separate DataForSEO check detected one direct backlink across the 94 tracked article URLs. Its index differs from Ahrefs, and zero results do not prove no links exist. I can show Ryder’s wider authority growth, but I cannot credit these articles with the sitewide increase.

05 / What this proves

The useful result, and the open question

The system can get approved, checked articles live and make their Search performance visible. Across the 94 tracked URLs, Google recorded 367 clicks and 87,325 impressions in the observed window. That is a real starting point for a small team.

It is too early to call it a revenue engine. Two pages supplied 36% of those clicks: one drew some searches with poor buyer relevance, and another answered a time-sensitive withdrawal problem. The data does not attribute sales, prove incremental traffic against a control group, or show that every search visitor was shopping for a hardware wallet. I want to improve the buyer-relevant topics and keep checking the query level evidence as the library grows.

Recent clicks across the same 94 tracked URLs also declined: 196 from August 10 through September 6, compared with 171 from September 7 through October 4. That is another reason to watch the topic mix and query results as the library grows.

If you want to build a similar workflow, the code is on GitHub. The schedules run through Claude tasks outside the repository, so cloning it does not start an always-on publisher. You would need your own connections, instructions and approval process.

Explore all chapters