Agent skill

SEO Geo

by seranking in seranking/seo-skills

URL-level Generative Engine Optimization (GEO) analysis. An agent skill from seranking/seo-skills.

MITAuto-check passedMarketing & SEO

Install SEO Geo

skills CLI
$ npx skills add seranking/seo-skills --skill seo-geo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install seranking/seo-skills seo-geo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo-geo .claude/skills/seo-geo && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seo-geo
GitHub stars
161
Token cost
~2.6k tokens
SKILL.md length
846 words
Files
1
Skills in repo
32
Repo updated
First seen
Licence
MIT

At a glance

URL-level Generative Engine Optimization (GEO) analysis. An agent skill from seranking/seo-skills.

  • Works in 9 steps: Validate target & preflight. See… → URL keyword footprint… → AIO presence per keyword… → …
  • The user asks GEO for this page
  • SKILL.md covers Prerequisites, Process, Output format and Tips
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

SEO Geo is an agent skill from seranking/seo-skills. URL-level Generative Engine Optimization (GEO) analysis. For a specific URL, pulls AI Overview citation data scoped to the URL's primary keywords, identifies which AIO queries cite the URL vs which don't but should, and recommends page-level changes that improve LLM citability. Distinct from seo-ai-search-share-of-voice (domain-level, brand vs brand) — this is one URL, deeper. Use when the user asks "GEO for this page", "AIO citation analysis", "AI search readiness for URL", "why isn't this page cited", or…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Marketing & SEO, covering AI search optimization and Citation management. It works with Firecrawl. The repository describes itself as: Claude SEO Skills — production Claude Agent Skills for the SE Ranking MCP server. Content briefs, AI Search share of voice, audits, backlink gaps, keyword clusters, schema… The licence is MIT.

When your agent uses it

  • The user asks GEO for this page
  • AIO citation analysis
  • AI search readiness for URL
  • Why isnt this page cited

Example prompts

  • “GEO for this page”
  • “AIO citation analysis”
  • “AI search readiness for URL”
  • “/seo-geo”

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Validate target & preflight. See skills/seo-firecrawl/references/preflight.md for the canonical 3-stage preflight (credit balance…
  2. URL keyword footprint DATA_getUrlOverviewWorldwide and DATA_getDomainKeywords (URL-filtered)
  3. AIO presence per keyword DATA_getAiOverview
  4. AIO leaderboard per keyword DATA_getAiOverviewLeaderboard
  5. Page passage-level audit WebFetch
  6. Compare candidate to cited sources
  7. Schema check mcpfirecrawl-mcpfirecrawl_scrape
  8. AI-protocol files mcpfirecrawl-mcpfirecrawl_scrape
  9. Synthesise GEO.md

What it can do on your machine

Read from SKILL.md and the folder at commit fd6d140. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

SEO Geo loads about 2.6k tokens when it runs. Until then it costs about 137 tokens; SKILL.md has 846 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~137
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from seranking/seo-skills at commit fd6d140, republished under its MIT licence (© seranking). 846 words, ~2,556 tokens.

Download SKILL.mdSave it as .claude/skills/seo-geo/SKILL.md (or your agent's skills folder).
name
seo-geo
description
URL-level Generative Engine Optimization (GEO) analysis. For a specific URL, pulls AI Overview citation data scoped to the URL's primary keywords, identifies which AIO queries cite the URL vs which don't but should, and recommends page-level changes that improve LLM citability. Distinct from `seo-ai-search-share-of-voice` (domain-level, brand vs brand) — this is one URL, deeper. Use when the user asks "GEO for this page", "AIO citation analysis", "AI search readiness for URL", "why isn't this page cited", or "improve LLM citations".

Example output: examples/seo-geo-notion-share-pages-20260514/GEO.md

Page-Level GEO (Generative Engine Optimization)

For one URL, surface its AI-search citation footprint and recommend the page-level changes that would improve citability across AI Overview, Perplexity, ChatGPT, and other LLM-powered search engines. Different from the domain-level brand-vs-brand share-of-voice — this is page-level diagnosis.

Prerequisites

  • SE Ranking MCP server connected.
  • Claude's WebFetch tool available.
  • User provides: a target URL. Optional: target country (default us), specific keywords to focus on (defaults: the URL's top-5 traffic-weighted keywords from SE Ranking).

Process

  1. Validate target & preflight. See skills/seo-firecrawl/references/preflight.md for the canonical 3-stage preflight (credit balance, Firecrawl availability, Google APIs). Skill-specific notes:

    • Confirm URL is fetchable before continuing.
    • Estimated SE Ranking cost for this skill: ~10–20 credits typical (URL keyword footprint, AIO presence + leaderboard for top 5 keywords).
    • Firecrawl: optional, ~3 Firecrawl credits if available. When available, the JSON-LD parse in step 7 and the AI-protocol-files step 8 use it. Without it, those steps emit (skipped — Firecrawl not installed; install via extensions/firecrawl/install.sh) notes in GEO.md rather than failing the run. Pass --no-firecrawl to skip Firecrawl even when available (saves credits).
    • Google APIs: not used.
  2. URL keyword footprint DATA_getUrlOverviewWorldwide and DATA_getDomainKeywords (URL-filtered)

    • Pull URL's overview (keywords, traffic).
    • Pull all keywords the URL ranks for. Sort by traffic-weighted score.
    • Take the top 5 as the GEO investigation set (or use user-supplied keywords).
  3. AIO presence per keyword DATA_getAiOverview

    • For each keyword, query AIO presence + citation list.
    • Flag: AIO present? Is the candidate URL cited?
    • Capture the AIO answer text — it tells you what passage shape Google's models prefer.
  4. AIO leaderboard per keyword DATA_getAiOverviewLeaderboard

    • Full ranked list of cited sources per AIO query.
    • Identify patterns: domain-level (which sites consistently cited?), passage-level (what structure?).
  5. Page passage-level audit WebFetch

    • Pull the page HTML.
    • Identify "passages" — paragraphs that could be extracted standalone (TL;DR boxes, definition paragraphs, summary sentences after H2s).
    • For each passage, score citability:
      • Has it a complete thought in 1–3 sentences?
      • Does it answer a specific question (i.e., the question its parent H2 implies)?
      • Has it a stat / number / named entity?
      • Has it a clear timestamp or freshness signal?
    • This is the citability layer.
  6. Compare candidate to cited sources

    • For each AIO query where candidate is NOT cited, identify the cited sources.
    • WebFetch 2–3 of them.
    • Extract the cited passage (often a snippet from the AIO answer).
    • Compare passage shape: candidate vs cited. Surface specific structural / content / freshness gaps.
  7. Schema check mcp__firecrawl-mcp__firecrawl_scrape

    • WebFetch in step 5 returned markdown — JSON-LD blocks were stripped before parsing. The schema check requires Firecrawl to recover them.
    • If Firecrawl available: scrape the target URL once (1 Firecrawl credit), parse the returned html for every <script type="application/ld+json"> block. Specifically check for: Article/BlogPosting with valid author + datePublished + dateModified; FAQPage if Q&A blocks present; BreadcrumbList; mainEntityOfPage self-canonical.
    • If Firecrawl unavailable: write Schema check: skipped — Firecrawl required to parse JSON-LD blocks (WebFetch returns markdown only). into evidence/06-schema-check.md, mirror the same line in the GEO.md "Schema check" section. Don't infer from markdown — that's the bug this section closes.
    • Schema isn't a direct citation signal but it correlates strongly with citation rates in Google's AIO.
  8. AI-protocol files mcp__firecrawl-mcp__firecrawl_scrape

    • If Firecrawl available: scrape https://{domain}/llms.txt and https://{domain}/.well-known/rsl.json (and the legacy /RSL.txt location as a fallback). Cost: 2 Firecrawl credits (one per file).
    • For each file: capture HTTP status (200 / 404 / other), full body if present, and a parsed summary (declared content categories, allow/deny scope, attribution requirements).
    • Surface in evidence/07-ai-protocol-files.md and in GEO.md as a new "AI-protocol files" section. These signal the domain's stance on LLM training and citation — present-and-permissive correlates with higher AIO citation rates.
    • If Firecrawl unavailable: write AI-protocol files: skipped — Firecrawl not installed. Don't fall back to WebFetch (it would work for plain text but the integration stays uniform; runtime savings are negligible).
  9. Synthesise GEO.md

Show full SKILL.md (222 more words)Show less

Output format

Create a folder seo-geo-{target-slug}-{YYYYMMDD}/ with:

seo-geo-{target-slug}-{YYYYMMDD}/
├── GEO.md                            (synthesised report + recommendations — primary deliverable)
├── 04-page-passages.md               (extracted passages + citability scores — load-bearing reference editors consult)
├── 05-cited-source-comparison.md     (gap vs cited sources — load-bearing reference)
└── evidence/
    ├── 01-url-keyword-footprint.md   (URL overview + top keywords — raw step output)
    ├── 02-aio-by-keyword.md          (AIO presence + citation per keyword)
    ├── 03-leaderboards.md            (full leaderboards per keyword)
    ├── 06-schema-check.md            (JSON-LD audit for GEO-relevant types — requires Firecrawl)
    └── 07-ai-protocol-files.md       (llms.txt + RSL status and content — requires Firecrawl)

Top-level: GEO.md + 04-page-passages.md + 05-cited-source-comparison.md. The other step files preserve raw API/scrape outputs in evidence/ for reproducibility — editors and writers don't open them in the normal flow.

GEO.md follows this shape:

markdown
# GEO Analysis: {URL}

> Snapshot dated {YYYY-MM-DD} · Country: {country} · Keywords analysed: {n}

## Citation footprint

| Keyword | AIO present | Candidate cited | Citers |
|---|---|---|---|
| {keyword 1} | ✓ | ✗ | {3 cited sources} |
| {keyword 2} | ✓ | ✓ | {includes candidate + 2 others} |
| ... |

**Citation rate: {n}/{checked} ({%}) of AIOs where candidate could appear actually cite it.**

## Where the candidate IS cited
- {keyword X} — passage cited: "{passage text}"
- ...

## Where the candidate is NOT cited (and AIO is present)
- {keyword Y} — cited sources tend to share these patterns:
  - {pattern 1: short definitive answer in first 100 words}
  - {pattern 2: numbered stat with date}
  - {pattern 3: schema-marked Article with author bio}
- The candidate is missing: {specific gap}.

## Page passage-level audit

Top-scoring passages on the candidate (by citability score):
1. {passage at H2 "X" — score 8/10. Strong: definitive sentence, named stat. Weak: no date.}
2. ...

Lowest-scoring passages (refresh candidates):
1. {passage at H2 "Y" — score 3/10. Weak: vague generalities, no specific data.}
2. ...

## Schema check
- `Article` (or sub-type) present and valid: {✓/✗ | skipped — Firecrawl required}
- `author` populated with `@type: Person` and `url`: {✓/✗}
- `datePublished` + `dateModified` ISO 8601: {✓/✗}
- `FAQPage` for visible Q&A: {✓/✗/N-A}
- `BreadcrumbList`: {✓/✗}

## AI-protocol files
- `/llms.txt` present: {✓ status 200 / ✗ status {n} / skipped — Firecrawl required}
- `/.well-known/rsl.json` (or `/RSL.txt`) present: {✓ / ✗ / skipped}
- Stance summary: {permissive / restrictive / mixed / unknown — based on declared categories and allow/deny scope}

## Recommendations (top 5 to improve citability)

1. {Specific change — e.g., "Add a 60-word TL;DR after the H1 that directly answers '{primary keyword}' — current page buries the answer below 800 words of preamble"}
2. {Specific change}
3. {Specific change}
4. {Specific change}
5. {Specific change}

## Recommended next step
Re-run `seo-geo` on this URL in 30 days after applying the recommendations. AIO indexes update on a monthly cadence — citation changes show up there first.

Tips

  • Respect rate limit. ~5 keywords × 2 AIO calls = ~10 calls; plus 2–3 WebFetch on cited sources. Easy.
  • Cost: ~10–20 SE Ranking credits typical, plus ~3 Firecrawl credits when the extension is installed (1 for target-URL JSON-LD, 2 for AI-protocol files). The skill degrades gracefully without Firecrawl — the schema and AI-protocol sections emit explicit "skipped" notes rather than silently dropping.
  • Citation isn't ranking. A page can rank well organically and still not be cited in AIO. The opposite happens too — cited pages often rank below their citation rate.
  • The biggest GEO levers are usually:
    1. Definitive answer in the first 200 words.
    2. Specific stats with dates and sources.
    3. Schema with author + dates.
    4. Passage-level structure (each H2 is a question; first paragraph after H2 is the answer).
  • Pair with seo-ai-search-share-of-voice for domain-level brand-vs-brand visibility (this skill is page-level).
  • Pair with seo-content-audit to apply the CITE rubric to the page (which has more citation-readiness items).
  • Pair with seo-schema to fix schema issues identified in step 7.
  • Don't optimize for AIO at the expense of human readability. The two reinforce each other when done right.

© seranking, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/seo-geo of seranking/seo-skills.

Open the folder on GitHubat commit fd6d140

Compare with similar skills

SEO Geo next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

SEO Geo compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SEO Geo this skillseranking/seo-skills161—~2.6kAutomated safety check: PassMIT
Geo Site Diagnoseyaojingang/GEOHub165—~515Automated safety check: PassAGPL-3.0
Grokipedia Recommendationskostja94/marketing-skills1k1 repos~4.2kAutomated safety check: PassMIT
SEO Auditshadcn-labs/agentcn490—~598Automated safety check: PassMIT
Geo Diagnoseyaojingang/GEOHub165—~434Automated safety check: PassAGPL-3.0
Create Geo Chartsonvoyage-ai/gtm-engineer-skills1.3k—~4.3kAutomated safety check: PassMIT

Similar skills

  • Geo Site Diagnose

    yaojingang/GEOHub

    Crawl one public website from a supplied URL, select up to ten representative page types, score evidence-lined GEO readiness, and generate a standalone visual HTML report.

    165 GitHub stars~515 tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Grokipedia Recommendations

    kostja94/marketing-skills

    When the user wants to add recommendations, links, or content to Grokipedia.

    1k GitHub starsUsed in 1 repo~4.2k tokens
    Marketing & SEOAuto-check passed
  • SEO Audit

    shadcn-labs/agentcn

    How to present the deterministic AI-SEO audit returned by auditpage.

    490 GitHub stars~598 tokensUpdated 3 days ago
    Marketing & SEOAuto-check passed
  • Geo Diagnose

    yaojingang/GEOHub

    Diagnose a brand, website, or page for evidence-backed GEO gaps and opportunities from user-supplied URLs, HTML, or evidence.

    165 GitHub stars~434 tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Create Geo Charts

    onvoyage-ai/gtm-engineer-skills

    Creates data visualizations (charts, graphs, tables) optimized for AI engine parsing and citation.

    1.3k GitHub stars~4.3k tokensUpdated 4 mo ago
    Marketing & SEOAuto-check passed
  • SEO Profound

    AgriciDaniel/claude-seo

    Profound LLM citation tracker (extension). An agent skill from AgriciDaniel/claude-seo.

    19k GitHub starsUsed in 1 repo~441 tokens
    Marketing & SEOAuto-check passed

More from seranking/seo-skills

All 32 skills in this repo
  • SEO Google

    seranking/seo-skills

    Direct access to Google's own SEO data via Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, GA4 organic…

    161 GitHub stars~4.8k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO API

    seranking/seo-skills

    SE Ranking API integration architect. An agent skill from seranking/seo-skills.

    161 GitHub stars~4.1k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Content Audit

    seranking/seo-skills

    E-E-A-T + CITE quality audit for an EXISTING piece of content.

    161 GitHub stars~3k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Content Brief

    seranking/seo-skills

    Generate a writer-ready SEO content brief from a target domain and topic.

    161 GitHub stars~2.5k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Drift

    seranking/seo-skills

    Capture an SEO baseline snapshot for a domain or URL, then on later runs compare the current state and surface regressions.

    161 GitHub stars~3.4k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Firecrawl

    seranking/seo-skills

    Ad-hoc web scraping, site mapping, and full-site crawling via Firecrawl MCP.

    161 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed

Works with

Categories

Questions about SEO Geo

What does SEO Geo do?

URL-level Generative Engine Optimization (GEO) analysis. An agent skill from seranking/seo-skills. SEO Geo is an agent skill from seranking/seo-skills. URL-level Generative Engine Optimization (GEO) analysis.

When should I use SEO Geo?

SEO Geo fits situations like: the user asks GEO for this page; AIO citation analysis; AI search readiness for URL; why isnt this page cited.

How do I install SEO Geo in Claude Code?

Run `npx skills add seranking/seo-skills --skill seo-geo -a claude-code`. Or copy the skill folder (skills/seo-geo in seranking/seo-skills) into .claude/skills/seo-geo in your project. Claude Code loads it when a task matches its description.

How do I install SEO Geo in Codex?

Run `npx skills add seranking/seo-skills --skill seo-geo -a codex`. Or copy the skill folder (skills/seo-geo in seranking/seo-skills) into .agents/skills/seo-geo in your project. Codex loads it when a task matches its description.

Can I use SEO Geo in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add seranking/seo-skills --skill seo-geo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-geo, .gemini/skills/seo-geo, .github/skills/seo-geo and .opencode/skills/seo-geo in your project.

What does SEO Geo need to run?

SKILL.md names no scripts, command-line tools or credentials: SEO Geo is instructions for the agent only.

Does SEO Geo access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is SEO Geo safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does SEO Geo use?

SEO Geo is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does SEO Geo use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to SEO Geo?

Skills that share tags, products or a category with SEO Geo: Geo Site Diagnose (yaojingang/GEOHub, 165 stars), Grokipedia Recommendations (kostja94/marketing-skills, 1k stars), SEO Audit (shadcn-labs/agentcn, 490 stars) and Geo Diagnose (yaojingang/GEOHub, 165 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains SEO Geo?

seranking (a GitHub organization) maintains it in seranking/seo-skills, which has 161 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on June 25, 2026.

Source: seranking/seo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.