Rankwatch — where your pages rank, and the few changes that move them.
A weekly automation on n8n: it measures where a site's pages actually rank, computes what moved since last week, and surfaces a short list of high-leverage opportunities — each carrying the ranking evidence that motivates it. Detection is deterministic and grounded; a separate brick drafts the fix into a reviewable pull request. This one dogfoods our own site first.
You publish to get found — but whether it worked is invisible.
Checking by hand doesn't happen — and most tools invent the answer.
- Reading the dashboard is a weekly chore that gets skipped — and rankings drift silently, so a page that slipped looks the same as one holding steady.
- The high-leverage moves — a page stuck at position eight, two of your own pages competing for one query — are hard to spot by eye in a long table.
- The market's "SEO tools" pad the report with invented numbers and vague advice you can't act on — the opposite of a grounded, do-this-next signal.
A grounded pull, deterministic heuristics, findings — and a PR a human merges.
- Pull: DataForSEO returns the domain's ranked keywords with positions and volume, plus the live SERP for tracked terms. A durable spend counter caps cost; an error, unauthorized response, or rate-limit sets the run to not-grounded and stops — no invented numbers, ever.
- Movement: each keyword is diffed against the prior run into gained / lost / new / dropped / flat, with a flag for anything that fell out of the top 100.
- Heuristics (deterministic): SEO-STRIKE surfaces striking-distance pages (positions 4–20 with real volume); SEO-CANN flags cannibalization; SEO-DECAY catches positions that dropped beyond a threshold. SEO-CTR (high-impressions, low click-through) is deferred until Google Search Console first-party data is wired.
- Draft (fail-open): with the enrichment seam bound, one LLM pass drafts the change wording; unbound or errored, the deterministic finding and its evidence still land — wording left for the human or the apply brick.
- Loop: every prior open finding is re-checked against the new positions — worked, no change, or regressed — so next week's list keeps what moved the needle.
- Notify: a signed digest goes out — net movement, the biggest gains and losses, and the single most important action to take.
Every position, volume, and movement figure traces to a value the ranking data actually returned. If the pull errors, is unauthorized, or hits its spend cap, the run stops and reports the blocker — it never fabricates a ranking.
The opportunities are found by fixed, thresholded heuristics on measured positions — the LLM only drafts the recommendation text. That draft is a fail-open seam: the finding and its evidence land with or without a model bound.
The detection half never touches the site. A separate brick turns the highest-conviction findings into a reviewable pull request — cross-model evaluated before it opens. Nothing merges without a person; the PR is the gate.
Measured, not promised.
The brick is spec-complete and provisioned inactive, parked at its data-credential gate. Once it runs, the numbers land here: pages moved toward page one, opportunities surfaced by class, and the share of findings whose fix actually moved the ranking — pulled straight from the stored evidence. Until then this section stays deliberately empty. No invented figures, ever.