CommunityCoding & Developmentgithub.com

cygnixlabs-cmd/cygnix-seo-skills

Find queries where two or more of your own pages split Google impressions, from a Google Search Console query+page export, and rank them HIGH/MEDIUM/LOW. Use when the user asks about keyword cannibalization, competing pages, pages fighting for the same keyword, or uploads a GSC export with query and page columns. Offline, no API keys.

What is cygnix-seo-skills?

cygnix-seo-skills is a Claude Code agent skill that find queries where two or more of your own pages split Google impressions, from a Google Search Console query+page export, and rank them HIGH/MEDIUM/LOW. Use when the user asks about keyword cannibalization, competing pages, pages fighting for the same keyword, or uploads a GSC export with query and page columns. Offline, no API keys.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cygnixlabs-cmd/cygnix-seo-skills/tree/HEAD/skills/keyword-cannibalization-lite

Installed? Explore more Coding & Development skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Ask in your favorite AI

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

Documentation

Keyword cannibalization finder (lite)

Reads a Search Console export with both query and page columns and lists the queries where more than one of your URLs gets a real share of impressions.

When to use

  • "Are my pages cannibalizing each other?", "two pages rank for the same keyword", "why does Google swap which page ranks?"
  • The user has a GSC performance export (or a Looker Studio / API export) at query + page level.

How to run

  1. Export from GSC: Performance → add both Query and Page dimensions (the API, Looker Studio or a GSC export tool; the UI alone exports one dimension at a time). Columns needed: query, page, clicks, impressions, position. Names are auto-detected.
  2. Run:
    python3 scripts/cannibalization.py gsc.csv
    python3 scripts/cannibalization.py gsc.csv --min-impressions 50 --min-share 15 --exclude "brand name"
    
  3. Present the table. For each HIGH row, recommend one action: merge and 301 the weaker page, de-optimise its title/H1 for the query, or differentiate intent. Ask the user before suggesting a redirect of a page that earns clicks.

Severity

  • HIGH: the second page gets ≥30% of the query's impressions and ranks within 10 positions of the first.
  • MEDIUM: the second page gets ≥20%.
  • LOW: anything else above the thresholds (often harmless, such as a homepage plus a product page).

Limits

It does not fetch the pages or judge intent overlap, and it does not choose a fix for each page. Some splits are fine (different intents served by different pages), so treat LOW as informational.

Example

best running shoes → primary /best-running-shoes (6.2) and /blog/running-shoes-guide (14.8, 31% of impressions) → HIGH.

Want a fix per page?

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

cygnixlabs-cmd/cygnix-seo-skills

Give one web page a quick 0-100 AI search visibility (GEO/AEO readiness) score from its server-rendered HTML - AI crawler access, Organization/WebSite JSON-LD, structured data, title/meta, question headings, answer-first opening, llms.txt and freshness - with the top 5 fixes. Use when the user asks if a page is ready for ChatGPT, Perplexity, Google AI Overviews or other AI search, or wants a GEO/AEO score.

cygnixlabs-cmd/cygnix-seo-skills

Compare two Google Search Console page exports (an earlier period and a recent one) and flag pages that are LOST, DECLINING, in STRIKING_DISTANCE, GROWING or STABLE, ranked by clicks lost. Use when the user asks which pages lost traffic, about content decay, what to refresh or update first, or uploads two GSC page exports. Offline, no API keys.

cygnixlabs-cmd/cygnix-seo-skills

Group a keyword list into topic clusters with a pillar keyword, majority search intent and suggested page type, so one page targets each cluster. Use when the user pastes keywords or a keyword CSV and asks to cluster, group, organise or map keywords to pages, or plan a content hub. Offline, no API keys.

cygnixlabs-cmd/cygnix-seo-skills

Check whether a website has a valid /llms.txt (llmstxt.org format, working links, size) and whether robots.txt lets AI crawlers such as GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Google-Extended in. Use when the user asks about llms.txt, AI crawler access, blocking or allowing AI bots, or whether ChatGPT/Claude/Perplexity can read their site. Read-only.

Related Skills