Case Study

Search work,
run like a system.

How I run SEO for a 700-page site with Claude Code: indexing sweeps, IndexNow, sitemap checks, and dated checkpoints.

Status Live · Internal
Client JQ AI SYSTEMS (this website)
Category SEO and AI Search
Built 2026
At a glance

What is SEO Engine?

The SEO Engine is the set of scripts, checks, and habits I use to run search for this website, which has more than 700 indexed URLs and grows by several posts a day. It runs from Claude Code: the Google Search Console and GA4 APIs for indexing and traffic, IndexNow for Bing and Copilot, a sitemap generator that refuses to publish broken URLs, and a dated checkpoint every four weeks with decision rules written down before the data comes in. Between the 15 September and 13 October 2026 checkpoints, Google clicks went from 38 to 116 a day, with 98.1% of submitted URLs indexed.

The Problem

What was broken.

This site publishes research posts most days. By October 2026 it had close to 700 URLs in its sitemap. At that size, SEO stops being a list of tips and becomes an operations problem: which pages are actually indexed, which ones Google crawled and dropped, whether a deploy broke a URL, and whether a change helped or the numbers just moved on their own.

The usual answer is a paid SEO suite and a lot of clicking around dashboards. That gives you charts, but it does not tell you what to do next, and it does not stop you shipping a sitemap with a dead link in it. I also learned the hard way that some tools quietly do nothing: Google's Indexing API returns a success code for normal pages and then discards the request.

The Approach

What was built.

I built the work as small scripts that Claude Code runs and reads, with Search Console and GA4 connected through their free APIs. Every step either checks something or refuses to continue when a check fails.

The sitemap is generated, never hand-edited, and the generator stops if a post file is missing. After each upload it requests every URL in the sitemap and only passes when all of them return 200. New posts go to IndexNow straight after upload, which gets Bing and Copilot to recrawl within minutes. Google gets the sitemap, plus a manual "Request Indexing" for the few pages that matter most.

The part that makes the difference is the checkpoint. Every four weeks I pull the same numbers the same way, compare equal windows, and write the result into a dated document. Each experiment gets its decision rule written down before the data arrives, so a good week cannot talk me into the wrong conclusion. That is also how I know the honest caveat on the numbers below.

How It Works

Architecture in plain English.

01
Connect the data
Search Console and GA4 are connected through their free APIs with a long-lived OAuth token, so Claude Code can pull clicks, impressions, indexing status, and sessions on request.
02
Sweep the index
A parallel URL Inspection sweep checks every sitemap URL and records its coverage state, last crawl, and canonical, so "crawled, not indexed" pages show up as a list instead of a guess.
03
Guard every deploy
The sitemap generator refuses to write if a post is missing, and a live check after upload requests all 700+ URLs and fails on anything that is not 200.
04
Ping the fast engines
IndexNow tells Bing, Copilot, Yandex, Seznam, and Naver about new URLs right after upload. It checks its own key file first, so a missing upload fails loudly.
05
Checkpoint and decide
Every four weeks, equal-length windows are compared and written into a dated document with go or no-go calls against rules set in advance.
Stack

Built with.

Claude Code Google Search Console API GA4 Data API URL Inspection API IndexNow Bing Webmaster Tools PHP Python XML sitemap JSON-LD
Outcomes

What changed.

38 → 116 Google clicks per day (26-day windows to 10 Oct 2026)
1.25% Google CTR, up from 0.65%
98.1% of 695 inspected URLs indexed (13 Oct 2026)
712 / 712 sitemap URLs returning 200 (14 Oct 2026)

The honest caveat: about 39% of the clicks in the latest window came from two posts about fast-moving topics, and topic spikes fade. The rest of the site still earned roughly 1,850 clicks in 26 days, close to double the previous total, and that is the baseline I track. Traffic is also not the same as clients. Most visitors are reading research, so the next checkpoint measures sign-ups and enquiries, not just clicks. The system's job is to tell me which of those is true, every four weeks, without guessing.

Free Consultation

Want a system
like this one?

Book a free 30-minute call. We map your situation, scope a similar build, and agree on a fixed quote before anything starts.

Book Free 30-min Call