The complete AI SEO playbook: from zero to 4.6M impressions in 3 months
AI SEO Playbook The complete playbook for building an AI-powered content engine that actually ranks — from zero to 4.6M impressions in 3 months. This is the methodology, the toolkit, and the hard-won lessons from building a content engine on ValueAddVC.com using AI agents, GSC feedback loops, and automated quality gates. 14 diagnostic scripts, 9 battle-tested configs (safety guards, agent orchestration, quality gates, anti-AI detection), structured data schemas, and CI automation — everything you need to replicate the system. Not theory. Not prompts. The actual operating system behind a site that went from 604K to 4.62M monthly impressions. Built by Trace Cohen at ValueAddVC.com. What This Playbook Covers The Content Engine — AI agent orchestration (multi-model pipelines: Opus/Fable for planning, Sonnet for writing, Haiku for grunt work), 5-format content rotation, voice training, anti-AI fingerprint detection The GSC Feedback Loop — Weekly automated reports, title rewrite candidates, cannibalization detection, query gap mining, striking distance optimization The Quality System — 9 publish gates, template phrase blocklists, source verification, fact-checking, structured data validation The Safety Layer — Repo locks, rebase guards, build cost control ([nobuild] tags, deploy-tick), self-healing heartbeats, content writer isolation from git The Growth Loop — Keyword anticipation (publish before demand spikes), living page refreshes, internal link graph optimization, news sitemap + WebSub for instant crawling How It Works flowchart LR GSC[Google Search Console API] --> Report[Weekly Report] Report --> Triage{Triage} Triage --> Rewrite[Title Rewrites] Triage --> Merge[Merge Cannibals] Triage --> Refresh[Refresh Stale Pages] Triage --> Kill[Kill Dead Weight] Content[Content Pipeline] --> Gates[Quality Gates] Gates --> |Pass| Publish[Publish] Gates --> |Fail| Fix[Fix & Retry] Publish --> GSC Rewrite --> GSC Merge --> GSC Refresh --> GSC style GSC fill:#0d7377,color:#fff style Gates fill:#0d7377,color:#fff style Publish fill:#15803d,color:#fff style Kill fill:#b91c1c,color:#fff The feedback loop: GSC data feeds diagnostic scripts → scripts surface what needs fixing → AI agents make the fixes through quality gates → improved rankings produce better GSC data → repeat. Every week the system gets smarter. What's Inside Scripts (/scripts) Configuration (/config) Schema Examples (/schemas) Examples (/examples) sitemap.ts — Next.js dynamic sitemap with honest lastmod dates news-sitemap.ts — 48-hour rolling news sitemap for Google News/Discover internal-link-component.tsx — React component for related posts + a build-time internal link inserter vercel-ignore.sh — Build skip logic for Vercel: [nobuild] tags, content-only detection, deploy-tick pattern (saves $$$) Sample Output (/samples) Every script has a sample output file so you can see what to expect before running anything: weekly-report.json — Full weekly report with trending queries, dropping pages, CTR triage rewrite-candidates.json — Title rewrite opportunities with per-query diagnosis content-audit.json — KILL/MERGE/UPDATE/PROMOTE/KEEP bucket assignments cannibal-clusters.json — Cannibalization clusters with wasted impression estimates template-scan.json — AI fingerprint scan with per-file phrase locations orphan-pages.json — Orphan, low-link, and dead-end page reports Documentation (/docs) setup-gsc.md — Step-by-step Google Search Console API setup (local auth + service account for CI) Automation (.github/workflows) weekly-seo-report.yml — GitHub Action that runs the weekly report every Sunday, commits results, and optionally creates a GitHub issue with the summary Quick Start # Clone the repo git clone https://github.com/TraceCohenTech/ai-seo-playbook.git cd ai-seo-playbook # Install dependencies npm install # Set up Google Search Console API access # (requires a Google Cloud project with Search Console API enabled) gcloud auth application-default login \ --scopes=https://www.googleapis.com/auth/webmasters.readonly # Find title rewrite opportunities npm run rewrite-candidates -- --site sc-domain:yoursite.com # Scan for AI template fingerprints npm run template-scan -- --dir ./your-content-directory # Find cannibalization clusters npm run find-cannibals -- --site sc-domain:yoursite.com # Run a full content audit npm run content-audit -- --site sc-domain:yoursite.com --dir ./your-content-directory # Find orphan pages (no internal links) npm run find-orphans -- --dir ./your-content-directory # Generate weekly report npm run weekly-report -- --site sc-domain:yoursite.com # Discover keywords you're already ranking for but have no page targeting npm run query-gaps -- --site sc-domain:yoursite.com --dir ./your-content-directory # Find "almost page 1" pages where a small nudge = big click gains npm run striking-distance -- --site sc-domain:yoursite.com # Find stale pages that need refreshing npm run refresh-tracker -- --site sc-domain:yoursite.com --dir ./your-content-directory # Check for redirect problems in your sitemap npm run check-redirects -- --site sc-domain:yoursite.com --sitemap https://yoursite.com/sitemap.xml # Ping Google to crawl your updated feeds immediately npm run websub-ping -- --feeds https://yoursite.com/sitemap.xml,https://yoursite.com/feed.xml New to the GSC API? See docs/setup-gsc.md for a step-by-step setup guide. New to the GSC API? See docs/setup-gsc.md for a step-by-step setup guide. The Playbook These tools are one half of the system. The methodology — why these specific metrics matter, how to interpret the results, and how to build the feedback loop that makes your content engine self-improving — is in the full guide: The AI SEO Playbook: How I Used AI to Build a Content Engine That Hit 4.6M Impressions in 3 Months The guide covers: Building the content engine (architecture, voice training, format rotation) The GSC reckoning (the AI-overview discovery, title rewrites, cannibalization) The iteration loop (keyword anticipation, living pages, technical SEO bugs) The system (quality gates, weekly reviews, cost control) Results These tools were built and refined on ValueAddVC.com over 3 months: *CTR is 0.4% because impressions grew ~8x — largely from AI-overview citations (GEO traffic) that don't produce clicks by nature. Human-intent CTR improved: ranked lists hit 6.8%, question-led posts hit 3.2%. The growth curve is near-vertical: Aug 13 alone hit 127K impressions and 854 clicks. How to Set Up the Weekly Cron Option 1: GitHub Actions (recommended) Create a Google Cloud service account with Search Console API access Add the service account JSON as a GitHub secret named GSC_CREDENTIALS Set the repository variable GSC_SITE to your GSC property (e.g., sc-domain:yoursite.com) Set CONTENT_DIR to your content directory path (e.g., ./src/app/blog) Optionally set CREATE_ISSUES to true for weekly GitHub issue summaries The workflow runs every Sunday at 9:30 AM ET automatically Option 2: Local cron (macOS launchd) # Create a plist in ~/Library/LaunchAgents/ # Schedule: every Sunday at 9:30 AM # Script runs: node scripts/weekly-report.mjs --site sc-domain:yoursite.com # Commits results to git Option 3: Any CI/CD system The scripts are standalone Node.js — run them anywhere you can install googleapis and authenticate with Google Cloud. Project Structure ai-seo-playbook/ ├── scripts/ # 14 diagnostic & tracking scripts │ ├── weekly-report.mjs # Weekly GSC performance report │ ├── gsc-rewrite-candidates.mjs # Find title rewrite opportunities │ ├── rewrite-measurer.mjs # Before/after rewrite tracking │ ├── query-gap-miner.mjs # Retroactive keyword discovery │ ├── striking-distance.mjs # Position 5-20 opportunities │ ├── template-detector.mjs # Scan for AI template phrases │ ├── cannibalization-detector.mjs # Find competing pages │ ├── content-audit.mjs # KILL/MERGE/UPDATE/PROMOTE scoring │ ├── orphan-finder.mjs # Find unlinked pages │ ├── refresh-tracker.mjs # Stale page detection │ ├── redirect-checker.mjs # Sitemap redirect problems │ ├── broken-link-checker.mjs # 404s and dead outbound links │ ├── websub-ping.mjs # Notify Google of feed changes │ └── indexing-submitter.mjs # Google Indexing API submissions ├── config/ # Quality gates, format system, anti-AI rules ├── schemas/ # JSON-LD structured data examples ├── examples/ # Next.js sitemaps + React components ├── samples/ # Example output from every script ├── docs/ # Setup guides └── .github/workflows/ # Weekly automated report CI Contributing Found a template phrase pattern that should be in the blocklist? A better heuristic for the content audit scorer? See CONTRIBUTING.md for how to submit changes. There's even a dedicated issue template for submitting new template phrases — the blocklist is never complete. Built On This toolkit was built and battle-tested on ValueAddVC.com — a venture capital content platform that went from 604K monthly impressions to 4.62M in 3 months using these exact scripts and methodology. The full methodology is in the companion guide: The AI SEO Playbook License MIT Built by Trace Cohen · ValueAddVC.com · t@nyvp.com