#136 by GitHub stars

zubair-trabzada/geo-seo-claude

GEO-first SEO skill for Claude Code. Comprehensive AI search optimization for any website — citability scoring, AI crawler analysis, brand authority, schema markup, platform-specific optimization, and PDF reports. If you want learn how to sell this to real businesses, check out the skool community

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

geo/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-audit/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-brand-mentions/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-citability/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-compare/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-content/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-crawlers/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-llmstxt/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-platform-optimizer/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-proposal/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-prospect/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-report/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-report-pdf/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-schema/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-technical/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

skills/geo-update/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

989cae01e8eb → 989cae01e8eb

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 989cae01e8eb

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 989cae01e8ebbc42a9ec798eb9e7cb423f5ec89c

git clone --filter=blob:none --no-checkout https://github.com/zubair-trabzada/geo-seo-claude.git .hotskills/zubair-trabzada-geo-seo-claude && git -C .hotskills/zubair-trabzada-geo-seo-claude checkout --detach 989cae01e8ebbc42a9ec798eb9e7cb423f5ec89c # Copy each selected skill directory from .hotskills/zubair-trabzada-geo-seo-claude into .claude/skills/<skill-name>/
11.6kGitHub stars
168stars in 7 days
16skills in this repository
0commits in 30 days

Heat

6.1
  • Star growth, last 7 daysAhead of 88% of tracked repositories
  • Star growth, last 24 hoursAhead of 86% of tracked repositories
  • Rank movement, last 7 daysAhead of 63% of tracked repositories
  • Commits, last 30 daysAhead of 0% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 7, 202611,556

Individual skills in this repository

How it works

geo

When your agent uses it

GEO-first SEO analysis tool. Optimizes websites for AI-powered search engines (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews) while maintaining traditional SEO foundations. Performs full GEO audits, citability scoring, AI crawler analysis, llms.txt generation, brand mention scanning, platform-specific optimization, schema markup, technical SEO, content quality (E-E-A-T), and client-ready GEO report generation. Use when user says "geo", "seo", "audit", "AI search", "AI visibility", "optimize", "citability", "llms.txt", "schema", "brand mentions", "GEO report", or any URL for analysis.

What it loads into context

Frontmatter

171 tokens

Always available to the agent

SKILL.md

2,883 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Quick Reference
  2. Market Context (Why GEO Matters)
  3. Orchestration Logic
  4. Business Type Detection
  5. Sub-Skills (14 Specialized Components)
  6. Subagents (5 Parallel Workers)
  7. Output Files
  8. PDF Report Generation
  9. Quality Gates
  10. Quick Start Examples

Files

  • SKILL.mdcore11,167 bytes
  • SKILL.mdcore11,167 bytes
Read SKILL.md

# GEO-SEO Analysis Tool — Claude Code Skill (February 2026)

> **Philosophy:** GEO-first, SEO-supported. AI search is eating traditional search.
> This tool optimizes for where traffic is going, not where it was.

---

## Quick Reference

| Command | What It Does |
|---------|-------------|
| `/geo audit <url>` | Full GEO + SEO audit with parallel subagents |
| `/geo page <url>` | Deep single-page GEO analysis |
| `/geo citability <url>` | Score content for AI citation readiness |
View the complete source on GitHub

Skills included

  • geo
  • geo-audit
  • geo-brand-mentions
  • geo-citability
  • geo-compare
  • geo-content
  • geo-crawlers
  • geo-llmstxt
  • geo-platform-optimizer
  • geo-proposal
  • geo-prospect
  • geo-report
  • geo-report-pdf
  • geo-schema
  • geo-technical
  • geo-update

Repository facts

License
MIT
Created
Feb 18, 2026
Last pushed
Nov 6, 2026
Forks
1,739
Open issues
21
Project activity
Active

Rank over the last 12 weeks

Now #136 · best #122 · down 7 in 30 days

  1. #130 on Oct 29
  2. #132 from Oct 30 to Oct 31
  3. #131 from Nov 1 to Nov 2
  4. #134 from Nov 3 to Nov 5
  5. #135 on Nov 6
  6. #136 since Nov 7
45 earlier periods
  1. #121 on Aug 2
  2. #122 on Aug 8
  3. #123 on Aug 9
  4. #125 on Aug 10
  5. #126 on Aug 11
  6. #127 from Aug 12 to Aug 15
  7. #126 on Aug 16
  8. #127 from Aug 17 to Aug 21
  9. #126 on Aug 22
  10. #127 from Aug 23 to Aug 28
  11. #126 on Aug 29
  12. #124 on Aug 30
  13. #123 on Aug 31
  14. #124 on Sep 1
  15. #123 from Sep 2 to Sep 3
  16. #122 on Sep 4
  17. #123 on Sep 5
  18. #122 on Sep 6
  19. #123 from Sep 7 to Sep 9
  20. #124 on Sep 10
  21. #123 on Sep 11
  22. #124 from Sep 12 to Sep 15
  23. #123 on Sep 16
  24. #124 on Sep 17
  25. #125 on Sep 18
  26. #124 on Sep 19
  27. #126 on Sep 20
  28. #125 from Sep 21 to Sep 25
  29. #124 on Sep 26
  30. #126 from Sep 27 to Sep 29
  31. #125 on Sep 30
  32. #126 from Oct 1 to Oct 2
  33. #127 on Oct 3
  34. #126 on Oct 4
  35. #128 on Oct 5
  36. #126 on Oct 6
  37. #128 on Oct 7
  38. #129 on Oct 8
  39. #130 from Oct 9 to Oct 11
  40. #131 from Oct 12 to Oct 13
  41. #132 on Oct 14
  42. #131 from Oct 15 to Oct 17
  43. #132 from Oct 18 to Oct 22
  44. #131 from Oct 23 to Oct 25
  45. #129 on Oct 28

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 2, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 22 notes
  • geo/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-audit/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-audit/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-audit/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-brand-mentions/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-brand-mentions/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-brand-mentions/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-citability/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-content/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-crawlers/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-crawlers/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-platform-optimizer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-platform-optimizer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-prospect/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-report/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-report-pdf/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-report-pdf/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-schema/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-update/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/geo-update/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 153 signals by file

geo/SKILL.md

  • Broad permissionsline 1
    Read, Grep, Glob, Bash, WebFetch, Write
  • Network accessline 67
    **Phase 1: Discovery (Sequential)** 1. Fetch homepage HTML (curl or WebFetch)
  • Network accessline 68
    1. Fetch homepage HTML (curl or WebFetch)
  • Network accessline 234
    # Full GEO audit of a website /geo audit https://example.com
  • Network accessline 235
    /geo audit https://example.com
  • Network accessline 237
    # Check if AI bots can see your site /geo crawlers https://example.com
  • Network accessline 238
    /geo crawlers https://example.com
  • Network accessline 240
    # Score a specific page for AI citability /geo citability https://example.com/blog/best-article
  • Network accessline 241
    /geo citability https://example.com/blog/best-article
  • Network accessline 243
    # Generate an llms.txt file for your site /geo llmstxt https://example.com
  • Network accessline 244
    /geo llmstxt https://example.com
  • Network accessline 246
    # Get a 60-second visibility snapshot /geo quick https://example.com
  • Network accessline 247
    /geo quick https://example.com
  • Network accessline 249
    # Generate a client-ready report /geo report https://example.com
  • Network accessline 250
    /geo report https://example.com

scripts/fetch_page.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    AI_CRAWLERS = {     "GPTBot": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)",
  • Network accessline 21
    "GPTBot": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)",
  • Network accessline 22
    "ClaudeBot": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +https://www.anthropic.com/claude-bot)",
  • Network accessline 23
    "PerplexityBot": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)",
  • Network accessline 24
    "GoogleBot": "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
  • Network accessline 25
    "BingBot": "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)",
  • Network accessline 65
    try:         response = requests.get(
  • Network accessline 66
    response = requests.get(
  • Network accessline 242
    try:         response = requests.get(robots_url, headers=DEFAULT_HEADERS, timeout=timeout)
  • Network accessline 243
    response = requests.get(robots_url, headers=DEFAULT_HEADERS, timeout=timeout)
  • Network accessline 337
    for key, check_url in [("llms_txt", llms_url), ("llms_full_txt", llms_full_url)]:         try:             response = requests.get(
  • Network accessline 338
    try:             response = requests.get(                 check_url, headers=DEFAULT_HEADERS, timeout=timeout
  • Network accessline 339
    response = requests.get(
  • Network accessline 425
    for sitemap_url in sitemap_urls:         try:             response = requests.get(
  • Network accessline 426
    try:             response = requests.get(                 sitemap_url, headers=DEFAULT_HEADERS, timeout=timeout
  • Network accessline 427
    response = requests.get(
  • Network accessline 438
    try:                             child_resp = requests.get(
  • Network accessline 439
    child_resp = requests.get(
  • Network accessline 491
    data = {"pages": pages, "count": len(pages)}     elif mode == "blocks":         response = requests.get(target_url, headers=DEFAULT_HEADERS, timeout=30)
  • Network accessline 492
    elif mode == "blocks":         response = requests.get(target_url, headers=DEFAULT_HEADERS, timeout=30)         data = extract_content_blocks(response.text)
  • Network accessline 493
    response = requests.get(target_url, headers=DEFAULT_HEADERS, timeout=30)

skills/geo-audit/SKILL.md

skills/geo-brand-mentions/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 248
    brand = '[Brand_Name]' # Check Wikipedia API directly api_url = f'https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch={quote_plus(brand)}&format=json'
  • Network accessline 249
    # Check Wikipedia API directly api_url = f'https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch={quote_plus(brand)}&format=json' r = requests.get(api_url, headers={'User-Agent': 'GEO-Audit/1.0'}, timeout=15)
  • Network accessline 250
    api_url = f'https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch={quote_plus(brand)}&format=json' r = requests.get(api_url, headers={'User-Agent': 'GEO-Audit/1.0'}, timeout=15) data = r.json()
  • Network accessline 251
    r = requests.get(api_url, headers={'User-Agent': 'GEO-Audit/1.0'}, timeout=15)
  • Network accessline 254
    if results and brand.lower() in results[0].get('title', '').lower():     print(f'WIKIPEDIA PAGE EXISTS: {results[0][\"title\"]}')     print(f'URL: https://en.wikipedia.org/wiki/{results[0][\"title\"].replace(\" \", \"_\")}')
  • Network accessline 255
    print(f'WIKIPEDIA PAGE EXISTS: {results[0][\"title\"]}')     print(f'URL: https://en.wikipedia.org/wiki/{results[0][\"title\"].replace(\" \", \"_\")}') else:
  • Network accessline 256
    print(f'URL: https://en.wikipedia.org/wiki/{results[0][\"title\"].replace(\" \", \"_\")}')
  • Network accessline 258
    print('No direct Wikipedia page found') # Check Wikidata wd_url = f'https://www.wikidata.org/w/api.php?action=wbsearchentities&search={quote_plus(brand)}&language=en&format=json'
  • Network accessline 259
    # Check Wikidata wd_url = f'https://www.wikidata.org/w/api.php?action=wbsearchentities&search={quote_plus(brand)}&language=en&format=json' r2 = requests.get(wd_url, headers={'User-Agent': 'GEO-Audit/1.0'}, timeout=15)
  • Network accessline 260
    wd_url = f'https://www.wikidata.org/w/api.php?action=wbsearchentities&search={quote_plus(brand)}&language=en&format=json' r2 = requests.get(wd_url, headers={'User-Agent': 'GEO-Audit/1.0'}, timeout=15) wd = r2.json()
  • Network accessline 261
    r2 = requests.get(wd_url, headers={'User-Agent': 'GEO-Audit/1.0'}, timeout=15)
  • Network accessline 269
    **Method 2 — Direct URL check (backup verification):** 1. WebFetch: `https://en.wikipedia.org/wiki/[Brand_Name]` — check if the page loads (not a redirect to search)
  • Network accessline 270
    1. WebFetch: `https://en.wikipedia.org/wiki/[Brand_Name]` — check if the page loads (not a redirect to search)
  • Network accessline 271
    2. WebFetch: `https://en.wikipedia.org/wiki/[Founder_Name]` for founder article

skills/geo-citability/SKILL.md

skills/geo-compare/SKILL.md

  • Broad permissionsline 1
    Read, Write, Bash, Glob

skills/geo-content/SKILL.md

  • Broad permissionsline 1
    Read, Grep, Glob, Bash, WebFetch, Write

skills/geo-crawlers/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 32
    - **Operator:** OpenAI - **User-Agent:** `GPTBot` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)`
  • Network accessline 33
    - **User-Agent:** `GPTBot` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)` - **Purpose:** Fetches content for ChatGPT's web browsing, plugins, and search
  • Network accessline 34
    - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)`
  • Network accessline 40
    - **Operator:** OpenAI - **User-Agent:** `OAI-SearchBot` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://docs.openai.com/bots/overview)`
  • Network accessline 41
    - **User-Agent:** `OAI-SearchBot` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://docs.openai.com/bots/overview)` - **Purpose:** Specifically powers ChatGPT's search 
  • Network accessline 42
    - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://docs.openai.com/bots/overview)`
  • Network accessline 48
    - **Operator:** OpenAI - **User-Agent:** `ChatGPT-User` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ChatGPT-User/1.0; +https://openai.com/bot)`
  • Network accessline 49
    - **User-Agent:** `ChatGPT-User` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ChatGPT-User/1.0; +https://openai.com/bot)` - **Purpose:** Used when a ChatGPT user explicitly asks the model to 
  • Network accessline 50
    - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ChatGPT-User/1.0; +https://openai.com/bot)`
  • Network accessline 56
    - **Operator:** Anthropic - **User-Agent:** `ClaudeBot` - **Full User-Agent String:** `ClaudeBot/1.0; +https://www.anthropic.com/claude-bot`
  • Network accessline 57
    - **User-Agent:** `ClaudeBot` - **Full User-Agent String:** `ClaudeBot/1.0; +https://www.anthropic.com/claude-bot` - **Purpose:** Fetches web content for Claude's features including web search, citations, and analysis tools.
  • Network accessline 58
    - **Full User-Agent String:** `ClaudeBot/1.0; +https://www.anthropic.com/claude-bot`
  • Network accessline 64
    - **Operator:** Perplexity AI - **User-Agent:** `PerplexityBot` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)`
  • Network accessline 65
    - **User-Agent:** `PerplexityBot` - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)` - **Purpose:** Powers Perplexity's AI search engine, w
  • Network accessline 66
    - **Full User-Agent String:** `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)`
  • Network accessline 99
    - **Operator:** Amazon - **User-Agent:** `Amazonbot` - **Full User-Agent String:** `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (compatible; Amazonbot/0.1; +https://de
  • Network accessline 100
    - **User-Agent:** `Amazonbot` - **Full User-Agent String:** `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (compatible; Amazonbot/0.1; +https://developer.amazon.com/supp
  • Network accessline 101
    - **Full User-Agent String:** `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)`
  • Network accessline 120
    - **Operator:** Common Crawl (nonprofit) - **User-Agent:** `CCBot` - **Full User-Agent String:** `CCBot/2.0 (https://commoncrawl.org/faq/)`
  • Network accessline 121
    - **User-Agent:** `CCBot` - **Full User-Agent String:** `CCBot/2.0 (https://commoncrawl.org/faq/)` - **Purpose:** Builds the Common Crawl dataset, which is used as training data by many AI companies (Google, Meta, Stability AI, and others).
  • Network accessline 122
    - **Full User-Agent String:** `CCBot/2.0 (https://commoncrawl.org/faq/)`
  • Network accessline 371
    See https://contentsignals.org/ for the full specification.

skills/geo-llmstxt/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 39
    https://example.com/llms.txt
  • Network accessline 53
    - [Page Title](https://example.com/page-url): Concise description of what this page covers and why it matters.
  • Network accessline 54
    - [Another Page](https://example.com/another-page): Description of content.
  • Network accessline 58
    - [Less Critical Page](https://example.com/optional-page): Description.
  • Network accessline 128
    ## Contact - Website: https://example.com
  • Network accessline 129
    - Website: https://example.com
  • Network accessline 313
    - [Most Important Page](https://example.com/page): Description covering the key content on this page.
  • Network accessline 314
    - [Second Page](https://example.com/page-2): Description of this page's content and value.
  • Network accessline 315
    - [Third Page](https://example.com/page-3): What users and AI systems will find here.
  • Network accessline 319
    - [Product A](https://example.com/product-a): Core features, target users, and pricing model for Product A.
  • Network accessline 320
    - [Product B](https://example.com/product-b): What Product B does and how it differs from Product A.
  • Network accessline 324
    - [Guide Title](https://example.com/guide): Comprehensive guide covering [topic] with [X] sections and practical examples.
  • Network accessline 325
    - [Blog Post](https://example.com/blog/post): Analysis of [topic] with original data from [source].
  • Network accessline 337
    - Website: https://example.com
  • Network accessline 426
    4. **Include your differentiators.** If your site has unique data, original research, or exclusive features, highlight these in descriptions and Key Facts. 5. **Keep it concise.** The llms.txt should be scannable in under 60 seconds. Save d
  • Network accessline 427
    5. **Keep it concise.** The llms.txt should be scannable in under 60 seconds. Save detail for llms-full.txt. 6. **Use absolute URLs.** Always include the full `https://` URL, never relative paths. 7. **Test after deployment.** After uploadi
  • Network accessline 428
    6. **Use absolute URLs.** Always include the full `https://` URL, never relative paths.
  • Network accessline 429
    7. **Test after deployment.** After uploading, verify the file is accessible at `https://yourdomain.com/llms.txt` with no redirects.

skills/geo-platform-optimizer/SKILL.md

  • Broad permissionsline 1
    Read, Grep, Glob, Bash, WebFetch, Write

skills/geo-proposal/SKILL.md

  • Broad permissionsline 1
    Read, Write, Bash, Glob, WebFetch

skills/geo-prospect/SKILL.md

  • Broad permissionsline 1
    Read, Write, Bash, Glob

skills/geo-report-pdf/SKILL.md

  • Broad permissionsline 1
    Read, Grep, Glob, Bash, Write

skills/geo-report/SKILL.md

  • Broad permissionsline 1
    Read, Grep, Glob, Bash, WebFetch, Write

skills/geo-schema/SKILL.md

  • Broad permissionsline 1
    Read, Grep, Glob, Bash, WebFetch, Write
  • Network accessline 53
    1. **Valid JSON**: Is the JSON-LD syntactically valid? Check for trailing commas, unquoted keys, malformed strings. 2. **Valid @type**: Does the `@type` match a recognized Schema.org type? Check against https://schema.org/docs/full.html.
  • Network accessline 54
    2. **Valid @type**: Does the `@type` match a recognized Schema.org type? Check against https://schema.org/docs/full.html.
  • Network accessline 163
    "@type": "WebSite",   "name": "Site Name",   "url": "https://example.com",
  • Network accessline 164
    "name": "Site Name",   "url": "https://example.com",   "potentialAction": {
  • Network accessline 165
    "url": "https://example.com",
  • Network accessline 168
    "target": {       "@type": "EntryPoint",       "urlTemplate": "https://example.com/search?q={search_term_string}"
  • Network accessline 169
    "@type": "EntryPoint",       "urlTemplate": "https://example.com/search?q={search_term_string}"     },
  • Network accessline 170
    "urlTemplate": "https://example.com/search?q={search_term_string}"
  • Network accessline 220
    1. **Wikipedia article** — highest authority entity link 2. **Wikidata item** — machine-readable entity identifier (e.g., `https://www.wikidata.org/wiki/Q12345`)
  • Network accessline 221
    2. **Wikidata item** — machine-readable entity identifier (e.g., `https://www.wikidata.org/wiki/Q12345`)
  • Network accessline 263
    {   "@context": "https://schema.org",
  • Network accessline 264
    "@context": "https://schema.org",
  • Network accessline 265
    "@type": "Organization",   "@id": "https://example.com/#organization",   "name": "Company Name",
  • Network accessline 266
    "@id": "https://example.com/#organization",
  • Network accessline 267
    "name": "Company Name",   "url": "https://example.com",   "logo": {
  • Network accessline 268
    "url": "https://example.com",
  • Network accessline 269
    "logo": {     "@type": "ImageObject",     "url": "https://example.com/logo.png",
  • Network accessline 270
    "@type": "ImageObject",     "url": "https://example.com/logo.png",     "width": 600,
  • Network accessline 271
    "url": "https://example.com/logo.png",
  • Network accessline 278
    "@type": "Person",     "name": "Founder Name",     "sameAs": "https://www.linkedin.com/in/founder"
  • Network accessline 279
    "name": "Founder Name",     "sameAs": "https://www.linkedin.com/in/founder"   },
  • Network accessline 280
    "sameAs": "https://www.linkedin.com/in/founder"
  • Network accessline 295
    },   "sameAs": [     "https://en.wikipedia.org/wiki/Company_Name",
  • Network accessline 296
    "sameAs": [     "https://en.wikipedia.org/wiki/Company_Name",     "https://www.wikidata.org/wiki/Q12345",
  • Network accessline 297
    "https://en.wikipedia.org/wiki/Company_Name",
  • Network accessline 298
    "https://www.wikidata.org/wiki/Q12345",
  • Network accessline 299
    "https://www.linkedin.com/company/company-name",
  • Network accessline 300
    "https://www.youtube.com/@companyname",
  • Network accessline 301
    "https://twitter.com/companyname",
  • Network accessline 302
    "https://github.com/companyname",
  • Network accessline 303
    "https://www.crunchbase.com/organization/company-name"

skills/geo-technical/SKILL.md

  • Broad permissionsline 1
    Read, Grep, Glob, Bash, WebFetch, Write
  • Network accessline 28
    ### 1.1 robots.txt Validity - Fetch `https://[domain]/robots.txt`
  • Network accessline 29
    - Fetch `https://[domain]/robots.txt`
  • Network accessline 30
    - Check for syntactic validity: proper `User-agent`, `Allow`, `Disallow` directives - Check for common errors: missing User-agent, wildcards blocking important paths, Disallow: / blocking entire site - Verify XML sitemap is referenced: `Sit
  • Network accessline 32
    - Verify XML sitemap is referenced: `Sitemap: https://[domain]/sitemap.xml`
  • Network accessline 282
    ### Detection Method 1. Fetch the page with curl (no JavaScript execution): `curl -s [URL]`
  • Network accessline 283
    1. Fetch the page with curl (no JavaScript execution): `curl -s [URL]`
  • Network accessline 285
    3. If key content (headings, paragraphs, product info, article text) is MISSING from the curl output, the site relies on client-side rendering
  • Network accessline 321
    ### 8.1 Time to First Byte (TTFB) - Target: **< 800ms** (ideally < 200ms) - Measure with curl: `curl -o /dev/null -s -w 'TTFB: %{time_starttransfer}s\n' [URL]`
  • Network accessline 322
    - Target: **< 800ms** (ideally < 200ms) - Measure with curl: `curl -o /dev/null -s -w 'TTFB: %{time_starttransfer}s\n' [URL]` - If TTFB > 800ms: check server location, caching, database queries, CDN usage
  • Network accessline 323
    - Measure with curl: `curl -o /dev/null -s -w 'TTFB: %{time_starttransfer}s\n' [URL]`
  • Network accessline 376
    **How to check:** Capture all `Link:` response headers from the standard homepage fetch (no extra request).
  • Network accessline 418
    ### Implementation Check 1. Check for IndexNow key file: `https://[domain]/.well-known/indexnow-key.txt` or similar
  • Network accessline 419
    1. Check for IndexNow key file: `https://[domain]/.well-known/indexnow-key.txt` or similar

skills/geo-update/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 38
    TEMP_DIR=$(mktemp -d) git clone --depth 1 https://github.com/zubair-trabzada/geo-seo-claude.git "$TEMP_DIR/repo"
  • Network accessline 39
    git clone --depth 1 https://github.com/zubair-trabzada/geo-seo-claude.git "$TEMP_DIR/repo"
  • Dangerous shell operationline 110
    rm -rf "$TEMP_DIR"

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 11 facts
Signal confidence: 153 facts

and 103 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativePath CLAUDE.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md geo/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md geo/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md geo/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md geo/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md geo/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

zubair-trabzada/geo-seo-claude: #136 on hotskills, 11.6k stars

[![zubair-trabzada/geo-seo-claude on hotskills](https://hotskills.dev/badge/zubair-trabzada-geo-seo-claude.svg)](https://hotskills.dev/skill/zubair-trabzada-geo-seo-claude/)