Communitygithub.com

deepanshumohan/organic-growth

Complete organic growth system for any website. Technical SEO (prerendering SPAs, canonicals, sitemap, robots.txt, redirects, real 404s, JSON-LD), market research by country (Google Trends, willingness to pay), keyword research (autocomplete, Ahrefs/Semrush volumes), Search Console diagnostics, a sources policy, programmatic SEO 2.0 with a duplicate-content quality gate, tool-led SEO (free calculators and generators as ranking pages), money pages (competitor alternatives, X vs Y, landing pages), linkable download assets, GEO for AI search (ChatGPT, Perplexity, AI Overviews), thin-content consolidation with 301s, and conversion tracking per page group. Use when the user says "do SEO for this site", "grow organic traffic", "why isn't Google indexing my pages", "programmatic SEO", "pSEO", "tool SEO", "free tools for SEO", "competitor alternative page", "keyword research", "set up Search Console", "audit my SEO", "get cited by ChatGPT", "plan blog content", or "/organic-growth".

What is organic-growth?

organic-growth is a Claude Code agent skill that complete organic growth system for any website. Technical SEO (prerendering SPAs, canonicals, sitemap, robots.txt, redirects, real 404s, JSON-LD), market research by country (Google Trends, willingness to pay), keyword research (autocomplete, Ahrefs/Semrush volumes), Search Console diagnostics, a sources policy, programmatic SEO 2.0 with a duplicate-content quality gate, tool-led SEO (free calculators and generators as ranking pages), money pages (competitor alternatives, X vs Y, landing pages), linkable download assets, GEO for AI search (ChatGPT, Perplexity, AI Overviews), thin-content consolidation with 301s, and conversion tracking per page group. Use when the user says "do SEO for this site", "grow organic traffic", "why isn't Google indexing my pages", "programmatic SEO", "pSEO", "tool SEO", "free tools for SEO", "competitor alternative page", "keyword research", "set up Search Console", "audit my SEO", "get cited by ChatGPT", "plan blog content", or "/organic-growth".

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/deepanshumohan/t/tree/HEAD/plugins/organic-growth/skills/organic-growth

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Organic Growth

You run the system in PLAYBOOK.md on the current project. Read it once at the start, then read a module only when you reach the phase that uses it. Write every finding into docs/seo/ in the project (copy templates from templates/) and commit after each phase.

Map

#PhaseReadOutput in the project
0Recon + baselinePLAYBOOK.md §0docs/seo/00-baseline.md
1Technical SEOchecklists/technical-seo.mdcode + seo.config.mjs
2Search Console + Bingchecklists/search-console.mdbaseline numbers
3Research: Trends, willingness to pay, autocomplete, Ahrefs/Semrush, Search Console, sourcesmodules/research.mddocs/seo/research/*.md, 09-sources-log.md
4Growth planmodules/pseo-2.md, modules/tool-led-seo.md, modules/money-pages.md, modules/linkable-assets.mddocs/seo/03-seo-plan.md
5Cleanup + buildPLAYBOOK.md §5, briefs 04/07/08pages, redirects, 05-consolidation-map.md
6GEO + conversionmodules/geo-ai-search.md, modules/seo-to-revenue.mdrobots, page shape, CTAs, events
7Launch + measurePLAYBOOK.md §7docs/seo/06-launch-log.md

The user can ask for one part only ("just tool SEO", "audit my site", "pSEO plan"). Then do just that phase, but still run phase 0 quickly first.

Ask first (only what the code can't tell you)

  1. Production domain and preferred host (apex or www).
  2. Target countries and languages. Never assume them from the founder's location.
  3. Search Console / analytics access.
  4. Paid keyword tools (Ahrefs, Semrush). Screenshots or exports are fine.
  5. Are any ratings, review counts or "used by" claims on the site real?

Scripts (Node 18+, no dependencies; in scripts/)

ScriptUse
check-live.sh <url>What crawlers get from the live site: redirects, 404, robots, sitemap, per-page title/canonical/H1 without JS
prerender.mjs --config seo.config.mjsSPA → static HTML per route + 404.html + spa.html + sitemap.xml
audit.mjs <dist> --base <url>Checks built HTML: titles, descriptions, canonicals, H1, thin pages, JSON-LD, sitemap consistency, rating schema
overlap.mjs <dist> --prefix /<cluster>/Duplicate-content gate: 5-word shingle Jaccard, <40% and ≥800 words
autocomplete.mjs "<seed>" --gl us,gb,au --expandReal Google autocomplete queries per country (demand evidence)

Rules learned the hard way

  • Research in the target market's locale. Wrong-country autocomplete once produced a whole batch of wrong-market pages.
  • Save every research pull as a dated file in docs/seo/research/, and log every on-page fact in 09-sources-log.md (official sources for legal facts; competitor facts dated and re-checked every 90 days; unverifiable claims left out).
  • Ahrefs' free tool has a human check the user must pass. Ask for screenshots, never try to get around it.
  • Pages exist because demand exists. Every planned page names its evidence.
  • The quality gate is not optional. <40% overlap with siblings, ≥800 words, its own data/tool/output. Templated {city} swaps get noindex and leave the sitemap. Scaled-content penalties hit the whole domain.
  • Tools are pages, not widgets. Each tool needs a unique editorial guide, FAQ and schema in static HTML, or it's a thin page.
  • Fewer, deeper pages. Merge thin posts into deep guides and 301 every old slug.
  • No invented numbers or social proof. Prices sourced or calculated on page; competitor facts dated; rating schema only when the owner confirms it's real.
  • Crawlers (and AI crawlers) must see content without JavaScript.
  • One host, one URL, real 404s, a sitemap generated from the same data as the pages.
  • Launch in batches of 10–20; expand only what gets impressions.
  • Every page ends in a relevant CTA; track conversions per page group.

Working style

  • Production-affecting changes (redirects, robots.txt, noindex, deleting pages) get a one-line confirmation from the user first, with the list.
  • Search Console, DNS and analytics clicks are the user's; give exact steps.
  • Run audit.mjs after every build and check-live.sh after every deploy, and paste the summary.
  • Record dated numbers in 06-launch-log.md so the next session can compare.

Frameworks

prerender.mjs is for client-rendered SPAs (Vite, CRA, React Router). Next.js, Astro, Nuxt, SvelteKit, Remix: use their metadata APIs and sitemap plugins, and still run audit.mjs on the build output. WordPress/Webflow/Shopify: skip phase 1 code, use the checklist against the live site with check-live.sh.

Related Skills