Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RankLoop

An autonomous SEO/GEO evolution engine. RankLoop treats the pages of a website as a population in an evolutionary system: every page has a DNA (title, meta, schema, content traits), a measured fitness, and a generation. A daily four-phase loop mutates that population, tests the mutations with real statistics, and promotes only proven winners.

Status: archived research project (2026-06-17), published as open source. The engine is real and the code verifiably works (see Verification), but the core promise, a measured ranking win from a fully closed promote/kill cycle on a live site, was never validated end to end. This README says so plainly instead of polishing it away. Reasons and reactivation criteria: ARCHIVE.md (German).

   ┌──────────────────────────────────────────────────────────────────┐
   │                                                                  │
   ▼                                                                  │
 COLLECT ──────────► ANALYSE ──────────► EVALUATE ──────────► EXECUTE ┘
 GSC data            SEO+GEO fitness     z-test on            Claude generates
 SERP snapshots      per page            page-group           mutations, served
 LLM citations       gap analysis        split tests:         live via Cloudflare
 competitors         opportunity         promote / kill /     Worker (HTMLRewriter),
 trends              scoring             keep running         no CMS access needed

All four phases run as daily Vercel crons with an evolution log as audit trail, plus a multi-site agency dashboard (approvals, client portal) on top.

Verification

Checked 2026-08-10 on a fresh clone of this repository:

Check Result Detail
npm ci PASS 862 packages, clean install
next build PASS Next.js 16.2.1, all ~50 routes compile (dashboard, client portal, API, crons)
vitest run 43 / 45 GSC fetcher, page scanner, fitness calculator, GSC client, SERP API all green
Known failures 2 Schema generator: HowTo and Article JSON-LD fail the repo's own validation (generator vs. knowledge-base required fields are inconsistent)
End-to-end loop unproven Needs running infrastructure (Supabase, GSC OAuth, DataForSEO, LLM keys) and was never closed on a real site

The engine is not a facade: the collectors call real APIs, the evaluator computes a real statistical test with hard guardrails, and the edge worker is deployable Cloudflare code. What is missing is the proof that the whole loop produces a measurable win on a live website.

What makes it interesting

1. GEO fitness as a daily number

The most original part. Beyond classic SEO, RankLoop actively queries five AI systems (Perplexity, ChatGPT, Claude, Gemini, Google AI Overview) and asks: is this domain cited in generative answers? The result becomes a GEO score (citation rate 35%, AI Overview presence 25%, citability 25%, entity clarity 15%) that is combined 50/50 with an SEO score (position, CTR against per-position benchmarks, click growth) into one fitness value per page. Generative Engine Optimization stops being a buzzword and becomes a measured, tracked quantity. See src/engine/intelligence/fitness-calculator.ts and src/engine/collectors/llm-monitor.ts.

2. Page-group split tests with honest statistics

SEO A/B testing cannot randomize visitors the way conversion testing does. RankLoop uses the SearchPilot-style approach instead: comparable pages are split into control and mutation groups and compared against their own baselines. Decisions are made by a z-test with hard guardrails: minimum 14 and maximum 42 days runtime, at least 100 clicks and 5 pages per group, 90% confidence, otherwise the verdict is inconclusive rather than a false winner. See src/engine/selection/test-evaluator.ts.

3. Edge delivery without CMS access

Winning mutations are not written into a CMS. A Cloudflare Worker (HTMLRewriter) injects titles, metas, schema markup and content blocks at serve time. That makes any website testable, WordPress, Shopify or custom, without touching the customer's deploy process. See edge-worker/ and src/lib/edge-delivery.ts.

4. AI-generated mutations grounded in domain knowledge

A hypothesis generator picks the most promising mutation type per page; Claude generates the concrete variant, fed from a curated SEO/GEO knowledge base shipped in the repo (src/engine/knowledge/seo-geo-knowledge-base.md). Execution modules include a schema generator, an llms.txt manager and a content writer.

5. Fully autonomous operation

Collect, analyse, evaluate and execute run as daily crons with no human in the loop, and every decision lands in an evolution log. An agency layer adds multi-site management, approval workflows and a read-only client portal.

Value, honestly sorted

Benefit Status
AI-answer visibility becomes measurable (daily LLM citation monitoring across 5 systems) real, usable today
SEO decisions become statistical instead of gut-driven (z-test, minimum power, confidence threshold) real, usable today
Testing without CMS access or customer deploys (edge injection) real, usable today
Continuous optimization with zero manual work (daily autonomous loop) built, never proven over weeks
Measurably better rankings from evolved pages unproven

Why it was archived

  1. Core promise unvalidated. No documented, fully closed promote/kill cycle with a real ranking win on a live site.
  2. ICP squeeze. The statistics need 100+ clicks per page group over 14-42 days, which only high-traffic sites deliver. Exactly those customers would have to trust a third-party edge worker in front of their live site. The market narrows from both ends.
  3. Never productized. No billing, incomplete tenant separation.
  4. Operating requirements. Own Supabase instance, GSC OAuth app, DataForSEO account and LLM API keys are mandatory.
  5. Known bugs. Two schema-generator tests fail (HowTo/Article required fields).

Reactivation criteria live in ARCHIVE.md. Short version: one real, measured ranking win from one manually closed loop on a real site, before any further investment.

GEO Visibility Loop (Claude Code skill, no engine required)

The engine above needs a live site, Supabase, and API keys. The distilled, zero-infra version of the same idea ships as a Claude Code skill in skills/geo-visibility-loop/: a one-time GEO baseline audit (six weighted categories, from AI-crawler access and llms.txt to third-party brand mentions) plus a weekly probe-and-diff loop that tracks whether AI answers and search actually surface your brand or repos, and outputs the top 3 moves each week.

git clone https://github.com/dankofly/rankloop.git
cp -r rankloop/skills/geo-visibility-loop ~/.claude/skills/

Then copy config.example.json to your project as geo-loop.config.json, set your domain and query set, and ask Claude for a GEO audit. A real worked example (baseline audit of hypeakz.io, honest 54/100, 6 of 6 probes MISS) is included under examples/hypeakz-baseline/.

Stack

Next.js 16 (App Router) · React 19 · Supabase (Postgres + Auth) · Claude API · Google Search Console API · DataForSEO · Cloudflare Workers (HTMLRewriter) · Vercel Cron · Tailwind 4 · Vitest

Repository layout

src/engine/
  orchestrator.ts          # the four-phase loop
  collectors/              # gsc-fetcher, serp-scraper, llm-monitor, competitor-scanner, trend-watcher
  intelligence/            # fitness-calculator, gap-analyser, hypothesis-generator, opportunity-scorer
  selection/               # test-evaluator (z-test), evolution-logger
  execution/               # content-writer, schema-generator, llms-txt-manager, split-test-deployer
  knowledge/               # curated SEO/GEO knowledge base fed to Claude
  offpage/                 # backlink research, outreach strategist
edge-worker/               # Cloudflare Worker (HTMLRewriter) for live mutation delivery
skills/geo-visibility-loop/  # standalone Claude Code skill: GEO audit + weekly visibility loop
src/app/                   # agency dashboard, client portal, API routes, cron endpoints
supabase/migrations/       # database schema

Setup

cp .env.local.example .env.local   # fill in your own keys
npm install
npm run dev

The engine scripts (scripts/) expect SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY and ANTHROPIC_API_KEY as environment variables. Optional collectors additionally use PERPLEXITY_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, DataForSEO credentials and a Google OAuth client for Search Console.

If you run a high-traffic site and want to close the loop RankLoop never closed, this repo gives you the full blueprint. Issues and forks welcome.

License

MIT · built by Daniel Kofler (HYPEAKZ.IO)

About

Autonomous SEO/GEO evolution engine: GSC + SERP + LLM-citation fitness, statistical promote/kill split tests, Claude-generated mutations served via Cloudflare Worker. Archived research project.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages