全部技能 / 内容创作 / geo-seo-claude
内容创作 · zubair-trabzada/geo-seo-claude

geo-seo-claude

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.

风险提醒:黄色 · 留意使用AI 侦查报告
作者 zubair-trabzadaGitHub zubair-trabzada/geo-seo-claude ↗Stars 10614许可 MIT(仓库根 LICENSE:'MIT License ... Copyright (c) 2026 Zubair Trabzada';README '## License / MIT License';GitHub 池内值亦为 MIT)commit 25f6ae8d6c
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

GEO-first 的六维加权评分是整套工具的主轴:AI 可引用性权重最高(25%),品牌权威 20%、内容 E-E-A-T 20%,传统技术 SEO 只剩 15%、结构化数据 10%、平台面 10%;公式、0-100 分档与 Critical/High/Medium/Low 整改时限都写死在技能文件里,agent 的自由裁量被压缩成『按 rubric 给六个分』。

skills/geo-audit/SKILL.md
GEO_Score = (Citability * 0.25) + (Brand * 0.20) + (EEAT * 0.20) + (Technical * 0.15) + (Schema * 0.10) + (Platform * 0.10)
注:同文件给出 90-100 Excellent / 75-89 Good / 60-74 Fair / 40-59 Poor / 0-39 Critical 五档释义,以及 Critical『Fix Immediately』到 Low『Optimize When Possible』的分级清单——分数可解释、可复算是它能交付客户的前提。

可引用性(citability)不是口号而是可执行代码:citability_scorer.py 把『AI 偏爱 134-167 词、自洽、含事实数字的段落』落成五个维度的正则打分器(答案块 30 / 自洽 25 / 结构 20 / 统计密度 15 / 独特性 10),逐段 0-100 并给 A-F 档。

scripts/citability_scorer.py
if 134 <= word_count <= 167:
注:同文件用 re.search 匹配定义句式('X is a/an/the'、'refers to'、'defined as')、代词密度、百分比/美元/带单位数字、'according to|research shows|studies found'、'our research|we found' 等;全程零 LLM 调用、零 API key,纯启发式,因此可离线复算也在 tests 里可回归。

全站审计靠 5 个并行 subagent 分工:geo/SKILL.md 用表格把每个 agent 文件与它负责的子技能绑好,主 skill 只做 Phase 1 探测、Phase 2 并发委派、Phase 3 合成。

geo/SKILL.md
Launch these 5 subagents simultaneously:
注:agent 清单为 geo-ai-visibility(citability/crawlers/llmstxt/brand-mentions)、geo-platform-analysis、geo-technical、geo-content、geo-schema;每个 agent 独立定义权重与输出格式,例如 agents/geo-ai-visibility.md 里 AI_Visibility = Citability*0.35 + Brand*0.30 + Crawler*0.25 + llms.txt*0.10。并行本身依赖宿主 agent 调度能力,skill 提供的是分工契约与合并规则。

AI 爬虫准入判定有实体依据:fetch_page.py 内硬编码 14 个 AI/搜索爬虫名单并逐条解析 robots.txt,agent 侧再给 100 分制扣分规则(关键爬虫被封各扣 15 分、次级各扣 5 分、无 sitemap 引用再扣 10 分)。

scripts/fetch_page.py
ai_crawlers = [ "GPTBot", "OAI-SearchBot",
注:名单为 GPTBot/OAI-SearchBot/ChatGPT-User/ClaudeBot/anthropic-ai/PerplexityBot/CCBot/Bytespider/cohere-ai/Google-Extended/GoogleOther/Applebot-Extended/FacebookBot/Amazonbot;robots.txt 之外还检查 /llms.txt、sitemap 引用,并解析非计分的 Content-Signal 草案指令(draft-romm-aipref-contentsignals)。

llms.txt 既能校验也能生成:脚本按『H1 标题 / > 描述 / ## 分节 / 链接条目』四项判定 format_valid 并逐条给 issues,generate 模式爬首页+内链(默认 30 页)输出 llms.txt 与 llms-full.txt 文本。

scripts/llmstxt_generator.py
result["format_valid"] = (
注:生成 llms-full.txt 时为每页再抓一次 meta description;作者显式跳过跨域 URL 以降低 SSRF 面(该行注释为 '# Skip cross-origin URLs to prevent SSRF via redirect chains'),说明已意识到被审计站点能向脚本注入请求目标。

品牌提及扫描是『半个真调用 + 半个交办』:Wikipedia/Wikidata 走真实 API 请求给出 yes/no 结论,YouTube/Reddit/LinkedIn/G2 等其余平台只生成 search_url 与核查清单,真实抓取交给 agent 的 WebFetch/搜索。

scripts/brand_scanner.py
api_url = f"https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch={quote_plus(brand_name)}&format=json"
注:证据边界:同文件 YouTube 分支写着 '# Note: Actual YouTube API would be used in production' / '# This provides the framework for Claude Code to use WebFetch'。故 README 的 'Scans YouTube, Reddit, Wikipedia, LinkedIn, and 7+ other platforms' 应理解为『给出扫描入口+评分方法论,具体核查由 agent 执行』。

PDF 交付物零 Python 依赖:v2.0.0 的 geo-report-pdf 用 pandoc 把 GEO-AUDIT-REPORT.md 渲染成自包含 HTML(自带封面模板 + CSS),再用本机 Google Chrome headless 打印成 PDF;分数与严重度上色由模板内联 JS 在打印前完成。

skills/geo-report-pdf/SKILL.md
No Python dependencies. No ReportLab. No JSON data wrangling.
注:前置只要求 pandoc 与本机 Chrome('/Applications/Google Chrome.app/'),最终以 Chrome "file://$(pwd)/GEO-REPORT.html" 打印;所谓 charts 实为 CSS 生成的评分徽章与色块表格,不是图表库。

/geo update 是一条自更新通道:clone 上游 main(--depth 1,无 commit pin、无校验),diff 后把 geo/、skills/、agents/、scripts/、schema/ 覆盖到 ~/.claude/,再 pip install -r 更新依赖,并且明确不删除本地已定制文件。

skills/geo-update/SKILL.md
git clone --depth 1 https://github.com/zubair-trabzada/geo-seo-claude.git "$TEMP_DIR/repo"
注:同文件 Step 5 的依赖更新走 'python3 -m pip install -r "$SOURCE_DIR/requirements.txt" --quiet'(非安装器那套 venv 隔离路径);该技能 allowed-tools 为 Bash/Read/Write,是本仓库里唯一『拉取并落盘上游代码』的常态路径。

2核心能力

01单一入口 /geo 的命令路由(17 条命令)与随命令声明的工具白名单
02复合 GEO Score(0-100)六维加权 + 五档评级 + Critical/High/Medium/Low 分级行动清单
03段落级 citability 打分(0-100 → A-F 档)与改写建议依据
04AI 爬虫准入判定(Allowed/Blocked/Restricted/Unknown)+ 扣分制 Crawler Access Score + Content-Signal 解析
05llms.txt 校验与从站点爬取生成(含 llms-full.txt)
06品牌/实体权威面扫描:Wikipedia 与 Wikidata 真调用,外加 Quora/Stack Overflow/GitHub/Crunchbase/Product Hunt/G2/Trustpilot 等检索入口
07客户交付物流水线:markdown 报告(GEO-CLIENT-REPORT.md/GEO-AUDIT-REPORT.md)→ pandoc+Chrome headless 的封面/评分色块 PDF,模板与 CSS 可白标改色
08GEO 代理商业务面:CRM-lite(prospect/proposal/compare 写 ~/.geo-prospects/)+ Flask/HTMX 看板(localhost:5050)+ rich 终端看板

3外部依赖

类型依赖
packagerequests
packagebeautifulsoup4
packagelxml(BeautifulSoup 解析器)
packageplaywright(可选,截图用;安装器会拉 Chromium 二进制)
packageflask(CRM Web 看板)
packagerich(终端 CRM 看板)
packagePillow / urllib3 / validators(requirements 其余依赖,脚本中未直接调用点)
clipandoc
cliGoogle Chrome(headless 打印 PDF)
cligit(安装与 /geo update 拉取上游)
cliuv(可选,加速 venv/依赖安装)
apiWikipedia MediaWiki 搜索 API
apiWikidata wbsearchentities API
network被审计目标站点本身(任意 http/https 主机,含 /robots.txt、/llms.txt、/llms-full.txt、/sitemap.xml、/sitemap_index.xml 及页面与页面内同域链接)
networkGoogle Fonts(PDF 样式表 @import,pandoc/Chrome 渲染时取字体)
networkBootstrap 与 HTMX CDN(CRM Web 看板模板)
networkraw.githubusercontent.com 一键安装(curl 管道执行 install.sh,不进 skill 运行时)
apiGitHub REST stargazers API(仅 CI 生成星标图,不进 skill 运行路径)

4风险提醒 风险提醒:黄色 · 留意使用

风险提醒:黄色 · 留意使用
  • 文档与代码不同步,会让用户走不通路径或误解能力。 — README/docs/commands-reference 仍写 scripts/generate_pdf_report.py + ReportLab(文件不存在、依赖未列),现行 PDF 走 pandoc+Chrome;子技能数量三处互斥(README/architecture 13、geo/SKILL.md 14、实际 15);router 的 /geo page 与 /geo quick 无对应子技能目录。
  • 品牌提及能力表述夸大。 — brand_scanner.py 仅对 Wikipedia/Wikidata 发真实请求,YouTube/Reddit/LinkedIn 及 7 个其它平台只输出 search_url 与核查清单,靠 agent 的 WebFetch/搜索补完;对外交付时说成『已扫描 N 个平台』会高估证据强度。
  • prompt injection → 执行权:不可信页面内容进入上下文,同时 Bash/Write 被授权且无隔离约定。 — 被审计站点的 HTML/文本经脚本与 WebFetch 进入模型上下文,而主/子技能声明 Bash + Write;文档未要求把外部内容当数据而非指令,也未要求执行前确认。结果是审计结论可能被对抗文本污染(并交付给客户),或被诱导执行命令——必须人工复核外部触发的命令与报告结论。
  • 安装/自更新链路无 pin、无校验。 — README 一键安装为 `curl -fsSL .../install.sh | bash`;/geo update 无 commit pin 地 clone 上游 main、覆盖 ~/.claude 下已安装文件并 pip install -r;install-win.sh 用 pip install --user 写用户级 Python,与 README 的隔离 venv 承诺在 Windows 路径上不符。
  • 启发式分数容易被误当实测事实。 — citability/robots/SSR 判定均为正则与阈值启发式(如 SSR 以 root 容器 <50 字符且整页 <200 词判为客户端渲染),不执行 JS、不查询任何 AI 平台;所谓『AI 可见性分数』是本工具自洽的近似值,客户报告应标注方法论与误差来源,避免被当成真实引用率。
  • 客户数据与本地看板:~/.geo-prospects 含联系人/合同额,卸载不清除,Web 看板无鉴权。 — app.py/crm_dashboard.py 直接读写 ~/.geo-prospects/prospects.json,Flask 服务监听本机 5050(默认 127.0.0.1,无认证机制);uninstall.sh 明确保留该目录('Note: Prospect data at ~/.geo-prospects/ was not removed.'),多人共用机器时需自行管理隐私数据。
风险提醒:黄色,留意使用。按统一分档:无凭证/密钥读取(全仓唯一的 GITHUB_TOKEN 读取在 CI 脚本 .github/scripts/star_history.py,不进 skill 运行路径)、无遥测/无数据外发端点、无混淆载荷,71 个受管文件全部可读且网络目标可枚举(被审计站点 + Wikipedia/Wikidata 公共 API + github/PyPI 拉代码 + 页面 CDN 字体)。黄色来自四层:① 主技能与子技能/agent 均声明 Bash + Write,而输入是被审计站点的任意不可信 HTML,构成『注入内容 → 执行/落盘』通道且文档无隔离约束;② 一键安装是 curl 管道执行 install.sh,Windows 安装器还以 pip install --user 写用户级 Python(与 README『Your system Python is not touched』的隔离承诺在 Windows 路径上不符);③ /geo update 无 pin 地 clone 上游 main、覆盖已安装文件并 pip install -r,属供应链执行面且无校验;④ PDF 环节以 Chrome --no-sandbox 打印由被审计内容间接生成的 HTML。以上均可由宿主权限与人工复核约束,且不涉及秘密接触,故不升橙(本批分档口径:cookie/凭证接触或隐蔽外发才计橙)。

5第二遍独立确认

  • [ok] skill.path 定位 — 候选位置逐一排查:仓库根无 SKILL.md(git ls-tree 确认根目录只有 README/LICENSE/install*/uninstall/requirements 与各功能目录);`geo/SKILL.md` 是唯一带 `name: geo` 的路由入口,frontmatter 声明 17 条 /geo 命令并提供 sub-skill/agent 分工表;install.sh 把 `geo/` 装成 ~/.claude/skills/geo 并把 `$INSTALL_DIR/SKILL.md` 当作主技能文件(`INSTALL_DIR="${SKILLS_DIR}/geo"`),geo-update 亦称 Main skill = ~/.claude/skills/geo/;docs/architecture.md 与 README 同称 'geo/ # Main skill orchestrator'。skills/* 是子技能(无 flagship 地位,安装时被平铺到 ~/.claude/skills/geo-*)。故取 skill.path="geo"——仓库根不是 skill,子技能目录是下级组件。
  • [discrepancy] README/docs 的 PDF 实现描述(generate_pdf_report.py + ReportLab) — README 架构图写 '│ ├── generate_pdf_report.py # PDF report generator (ReportLab)',docs/commands-reference.md 写 '- Calls `python3 ~/.claude/skills/geo/scripts/generate_pdf_report.py` (requires `pip install reportlab`).';但 71 个受管文件中并无该脚本,requirements.txt 没有 reportlab,现行 skills/geo-report-pdf/SKILL.md(version 2.0.0)明确 'No Python dependencies. No ReportLab.',改用 pandoc + Chrome headless + 仓内模板/CSS。结论:README 与 commands-reference 是未同步的旧文档,应以 geo-report-pdf v2.0.0 为准。
  • [discrepancy] 子技能数量与实际目录数 — 三处口径互斥:README '├── skills/ # 13 specialized sub-skills'、docs/architecture.md 同写 13;geo/SKILL.md 标题 '## Sub-Skills (14 Specialized Components)' 且表格缺 geo-report-pdf;实际 `skills/` 下有 15 个目录(含 geo-report-pdf)。另外 router 命令表共 17 条命令,其中 `/geo page` 与 `/geo quick` 没有对应子技能目录(由其它技能组合实现)。用户按文档理解能力边界会有偏差。
  • [discrepancy] 品牌提及『扫描 10+ 平台』的夸大检查 — README 称 'Scans YouTube, Reddit, Wikipedia, LinkedIn, and 7+ other platforms'。实读 scripts/brand_scanner.py:只有 Wikipedia API 与 Wikidata API 两处 requests.get 是真实网络判定;YouTube/Reddit/LinkedIn/Quora/Stack Overflow/GitHub/Crunchbase/Product Hunt/G2/Trustpilot 分支仅返回 search_url + check_instructions,并由代码注释明示 'Actual YouTube API would be used in production / This provides the framework for Claude Code to use WebFetch'。属能力边界夸大(真实核查转由 agent 的 WebFetch/搜索完成)。
  • [discrepancy] 安装器『隔离 venv、不动系统 Python』承诺 — README 声明 'Python dependencies are installed into a dedicated virtual environment at `~/.claude/skills/geo/.venv/`. Your system Python is **not** touched',install.sh 确实如此(venv + `uv pip install --python "$VENV_PY"`/`$VENV_PY -m pip install` + 把脚本 shebang 与 SKILL.md 中 python3 调用 sed 成 venv 解释器)。但 install-win.sh 走的是 `$PYTHON_CMD -m pip install --user -r "$SOURCE_DIR/requirements.txt"`(写用户级 site-packages),与承诺不符;/geo update 也用 `python3 -m pip install -r ...`(非 venv 路径)。
  • [ok] hooks 安装路径 — 两个安装器都 `mkdir -p "$INSTALL_DIR/scripts" "$INSTALL_DIR/schema" "$INSTALL_DIR/hooks"` 并在 `[ -d "$SOURCE_DIR/hooks" ]` 守卫下复制 hooks;仓库内确无 hooks/ 目录(本地 ls 报 No such file or directory,git ls-tree 亦无),故该分支在源码态为惰性空操作,不构成未列出的执行面。
  • [ok] 全部 external_deps 二次定位 — 18 条依赖逐条回到调用点复核:requests 在 fetch_page.py/citability_scorer.py/brand_scanner.py/llmstxt_generator.py 四处 requests.get;beautifulsoup4+lxml 在 fetch_page/llmstxt 的 BeautifulSoup(..., "lxml");flask 在 webapp/app.py 顶层 import 且 `app.run(debug=debug, port=5050)`;rich 在 crm_dashboard.py import 块;playwright 由 install.sh 的 venv 内 `-m playwright install chromium` 触发(requirements 亦列 playwright>=1.56.0);pandoc/Chrome/git/uv 均为命令行调用点;Wikipedia/Wikidata/fonts.googleapis.com/jsdelivr/unpkg/api.github.com/raw.githubusercontent.com 均有原文出处。Pillow/urllib3/validators 仅见于 requirements.txt,仓内无直接调用点(已在条目 note 中标注)。
  • [ok] 是否漏掉网络调用/隐藏脚本/混淆内容 — 全量 grep `requests\.|urllib|urlopen|getenv|environ|api_key|API_KEY|token|Authorization|https?://` 无遗漏命中:除已列条目外只剩示例/文档里的 schema.org、w3.org 等纯参考资料 URL,无上传/回传/统计端点;全文无 base64 长串、无 eval/exec、无 subprocess 拼装执行远端内容(webapp 与 crm_dashboard 只读写本地 JSON)。资产面 71 文件全部为文本,无二进制/压缩包。

6结论

  • GEO-first 的量化骨架自洽且可执行:六维权重 → 0-100 分档 → 严重度 → 整改时限,agent 只需按 rubric 填分,不同站点/不同次审计的结果可比。
  • 不是纯提示词壳:5 个 Python 脚本真实解析 HTML/robots.txt/llms.txt 并做启发式打分,结果可离线复算,且带针对 SSR 误报的回归测试与实测记录。
  • 交付物直达客户层:markdown 报告 + pandoc/Chrome 的封面级 PDF(评分色块、严重度配色、分页),模板与 CSS 可白标改色,代理商可直接署名交付。
  • 安装工程化考虑周到:专属 venv + 把脚本 shebang 与 SKILL.md 里的解释器调用统一改写成 venv 路径,避免依赖污染与 PATH 差异。
  • 业务闭环完整:prospect/proposal/compare + CRM 看板让审计结果可直接变成销售物料与月度客户汇报,这在同类 skill 里少见。
  • 适合:适合要给客户做 AI 搜索可见性(GEO)诊断的代理商/顾问与市场团队:一键装完即可产出 0-100 分审计、客户报告、提案与月度 delta,PDF 与白标能力让它能直接当交付物;也适合想把『AI 引用友好度』引入现有 SEO 工作流的团队(可单跑 /geo citability、/geo crawlers、/geo llmstxt 等子命令)。工程侧价值在于它把 citability/robots/llms.txt/SSR 判定落成可读可测的 Python 启发式,可当自有流水线的起点或对照实现。
    不适合:不适合期望『真实 AI 平台可见性数据』的场景——它不调用任何 AI 平台 API,分数是规则估算,想知道 ChatGPT/Perplexity 实际是否引用你,需要另配真实查询或第三方数据源;不适合无人复核地对不可信站点批量跑审计(Bash+Write 与外部内容同处一个上下文,存在注入→执行通道);不适合 Windows 上追求严格依赖隔离的用户(install-win.sh 走 pip install --user),也不适合只想做传统 SEO 审计的场景——这份工具的权重与判据是 GEO 优先,传统 SEO 面只覆盖技术与结构化数据两个次权重维度。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 geo-seo-claude.tar.gz
    sha256: 3a969f95e983e9c4…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 25f6ae8d6c;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库zubair-trabzada / zubair-trabzada/geo-seo-claude
    Stars10614
    最近推送2026-09-15
    本 skill commit25f6ae8d6c
    许可MIT(仓库根 LICENSE:'MIT License ... Copyright (c) 2026 Zubair Trabzada';README '## License / MIT License';GitHub 池内值亦为 MIT)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近