Home
Softono

Seo Geo Skills

Open source Python
32
Stars
0
Forks
0
Issues
0
Watchers
3 months
Last Commit

 About Seo Geo Skills

SEO/GEO site audit skill for Codex and Claude Code with capped crawling, template-aware sampling, and bilingual HTML reporting powered by local Lighthouse or PageSpeed API.

Platforms

Web Self-hosted

Languages

Python

Links

Need Help Installing Seo Geo Skills?

We provide expert installation service for this software. Our team will install, configure, and secure Seo Geo Skills on your server. plans start at just $30.

Seo Geo Skills

View on GitHub

SEO GEO Skills

Claude Code skill for sampled SEO + GEO audits of public sites.

  • Crawl up to 50 pages, template-aware sampling
  • Raw Googlebot baseline vs browser-rendered evidence
  • Local Lighthouse (no remote API)
  • Final polished HTML report from the same payload as the chat audit

中文版见下方

Install

Paste this into a Claude Code session:

Install this skill: https://github.com/iklynow-hue/seo-geo-skills

Claude reads this README and runs the install. Open a fresh Claude Code session afterward so the skill is picked up.

Manual install

Prerequisites: git, python3, node + npm. Chrome is downloaded by chrome-launcher on first Lighthouse run if not present.

Clone the repo anywhere you keep code (the source location is your choice), then create a symlink at the fixed path Claude Code reads from.

# 1. Clone wherever you want — pick your own path.
REPO_DIR=~/Projects/seo-geo-skills
git clone https://github.com/iklynow-hue/seo-geo-skills "$REPO_DIR"

# 2. Symlink the skill into the path Claude Code scans (this path is fixed).
mkdir -p ~/.claude/skills
ln -s "$REPO_DIR/skills/seo-geo-site-audit" ~/.claude/skills/seo-geo-site-audit

# 3. Install the Lighthouse runner's npm deps (~120 MB, one-time).
cd "$REPO_DIR/skills/seo-geo-site-audit/scripts" && npm install

Why a symlink? Claude Code auto-discovers skills from ~/.claude/skills/. Your source can live wherever you keep code; the symlink bridges the two paths so edits in your repo show up immediately in any new Claude Code session.

Per-project install instead: replace ~/.claude/skills/ with .claude/skills/ inside the project root.

Update

cd "$REPO_DIR" && git pull
# If scripts/package.json changed:
cd skills/seo-geo-site-audit/scripts && npm install

Optional fetchers

urllib works alone, but SPA accuracy improves with one of these. Skip initially; the wrapper detects what's available at run time. Add --auto-install-prereqs later if you want.

  • scrapling[fetchers]pip install "scrapling[fetchers]" && scrapling install
  • lightpanda~/.local/bin/lightpanda on first auto-install
  • agent-browsernpm install -g agent-browser && agent-browser install

Use it

The skill runs immediately on the URL. No setup questions. Defaults:

Setting Default
Mode Light template audit (10 pages)
Output style Operator
Performance Local Lighthouse — homepage, mobile + desktop
HTML report On
Output language English

Example prompts

You say The skill does
Audit https://example.com Defaults
Conduct an SEO and GEO audit for https://example.com Defaults (any audit-like phrasing triggers the skill)
Quick check on https://example.com, skip Lighthouse Fast mode (1 page) + --skip-pagespeed
Run a 50-page audit for https://example.com, output in Chinese Template mode + Chinese report
Audit https://example.com with specialist depth Specialist output style
审核 https://example.com 50 页 用中文 Template mode + Chinese report
Audit my site (no URL) Skill asks for the URL — the only hard requirement

When the agent asks

Three cases only:

  • The URL is missing.
  • The prompt is in a non-English language but the report language wasn't stated — one confirmation: "Report in English or <other>?".
  • --auto-install-prereqs would download network binaries — consent first.

The report defaults to English even when the prompt is in another language. Switch only on explicit "in <language>" / "用中文" or the --report-language flag.

Limits

  • Crawl cap 1–50 (fast=1, light=10, template=50).
  • Lighthouse: 1 homepage URL by default (mobile + desktop), max 10 via --max-pagespeed-urls.
  • SPA route expansion is sample-based, not a full app crawler.
  • Routes from dom_route_hint / route_guess are labeled assisted discovery — not crawlability proof.

Terminal usage

Replace ${SKILL_DIR} with ~/.claude/skills/seo-geo-site-audit.

"${SKILL_DIR}/scripts/audit-site" https://example.com \
  --mode template --output-style operator --html-report

Common flags (full list in skills/seo-geo-site-audit/references/cli-flags.md): --mode, --max-pages, --output-style, --max-pagespeed-urls, --skip-pagespeed, --html-report, --report-language, --fetcher, --auto-install-prereqs, --out-dir.

After Claude fills final-report.json, render the polished HTML:

"${SKILL_DIR}/scripts/render-report-html" \
  --report-json "${SKILL_DIR}/runs/site-audit-<host>-<stamp>/final-report.json" \
  --out "${SKILL_DIR}/runs/site-audit-<host>-<stamp>/audit-report.html"

Artifacts

  • crawl.json — per-page signals
  • pagespeed.json — Lighthouse data (unless skipped)
  • audit-run.json — run manifest
  • evidence-report.html — raw evidence (with --html-report)
  • final-report.json — payload Claude fills in
  • audit-report.html — final polished HTML

SPA handling

The crawl keeps two evidence tracks per HTML page:

  • search_engine_visibility — raw Googlebot-style HTTP baseline, no JavaScript.
  • Rendered browser evidence — what the SPA shows after JS runs.

Signals that appear only after rendering are flagged as a JavaScript-dependency risk (not "Google can't see it"). Pages reached only through dom_route_hint / route_guess are audit assistance, not crawlability proof.

Security

The repo is intended to be safe for public cloning.

  • No API keys / tokens / secrets in source, docs, or artifacts.
  • Lighthouse runs locally — no third-party API key required.
  • Chrome's sandbox stays on by default; opt-in via SEO_GEO_ALLOW_NO_SANDBOX=1 only for trusted root / CI / container environments.
  • --auto-install-prereqs is opt-in. Lightpanda binary downloads require a registered SHA256 or explicit SEO_GEO_ALLOW_UNVERIFIED_LIGHTPANDA=1.

Full notes: skills/seo-geo-site-audit/SECURITY.md.

Contributing

Cloning and forking are welcome. Stars are appreciated. Bugs and suggestions → please open an issue.


SEO GEO Skills 中文

Claude Code 技能,对公开网站做采样式 SEO + GEO 审核。

  • 最多抓取 50 页,按模板抽样
  • 对比 raw Googlebot 风格 HTTP 基线和浏览器渲染证据
  • 通过 lighthouse + chrome-launcher 在本地跑 Lighthouse(不需要远程 API)
  • 最终 HTML 报告与终端审核报告共用同一份结构化 payload

安装

在 Claude Code 会话中粘贴:

帮我安装这个 skill: https://github.com/iklynow-hue/seo-geo-skills

Claude 会读取本 README 并执行安装。完成后请开一个新的 Claude Code 会话让 skill 被加载。

手动安装

前置: gitpython3node + npm。首次运行 Lighthouse 时 chrome-launcher 会按需下载 Chrome。

把仓库 clone 到你自己平时放代码的位置(任意路径都行),然后把 skill 软链到 Claude Code 固定查找的目录

# 1. clone 到你想放的位置(路径你自己决定)。
REPO_DIR=~/Projects/seo-geo-skills
git clone https://github.com/iklynow-hue/seo-geo-skills "$REPO_DIR"

# 2. 软链到 Claude Code 扫描的固定路径。
mkdir -p ~/.claude/skills
ln -s "$REPO_DIR/skills/seo-geo-site-audit" ~/.claude/skills/seo-geo-site-audit

# 3. 安装 Lighthouse runner 的 npm 依赖(约 120 MB,一次性)。
cd "$REPO_DIR/skills/seo-geo-site-audit/scripts" && npm install

为什么用软链? Claude Code 在 ~/.claude/skills/ 下自动发现 skill。源码可以放在任意路径,软链负责把固定的发现位置指向你的实际仓库,这样你在仓库里改了文件,新开的 Claude Code 会话立刻能看到。

只想项目内用: 把上面的 ~/.claude/skills/ 换成项目根下的 .claude/skills/

更新

cd "$REPO_DIR" && git pull
# 如果 scripts/package.json 有变更:
cd skills/seo-geo-site-audit/scripts && npm install

可选爬虫前置依赖

只用 urllib 也能跑,但 SPA 站点上以下任意一个工具在场会更准确。建议先跳过;包装脚本会在运行时检测,需要时再加 --auto-install-prereqs

  • scrapling[fetchers]pip install "scrapling[fetchers]" && scrapling install
  • lightpanda — 首次 auto-install 时下载到 ~/.local/bin/lightpanda
  • agent-browsernpm install -g agent-browser && agent-browser install

使用

收到 URL 后 skill 直接开跑,不再追问。默认值:

默认
模式 轻量模板审核(10 页)
输出风格 Operator
性能 本地 Lighthouse — 首页,移动 + 桌面
HTML 报告
输出语言 English

示例

你说 skill 实际行为
Audit https://example.com 全部默认
帮我对 https://example.com 做一次 SEO 和 GEO 审核 同上(任何"审核"类措辞都会触发)
审核 https://example.com,跑 50 页,用中文输出 Template (50 页) + 中文报告
快速检查 https://example.com,跳过 Lighthouse Fast (1 页) + --skip-pagespeed
深度审核 https://example.com,专家风格 Specialist 输出风格
审核 https://example.com 50 页 用中文 Template + 中文报告(更短的写法)
帮我审核我的站点(没给 URL) 反问 URL — 唯一硬性要求

只在三种情况会问

  • 没给 URL。
  • 请求是非英文写的,但没说"用 X 语言输出"——只确认一次:"输出用 English 还是 <其他>?"
  • --auto-install-prereqs 要联网下载二进制(Lightpanda 等)时先确认。

报告默认 English,即使你的请求是中文写的也一样。只有显式说"用中文" / "in Chinese"或加 --report-language flag 才切换。

限制

  • 抓取页数 1–50(fast=1light=10template=50;默认 light)。
  • Lighthouse 默认 1 个首页 URL(mobile + desktop),最多 10 个(--max-pagespeed-urls)。
  • SPA 路由扩展仍是采样逻辑,不是完整应用爬虫。
  • 只通过 dom_route_hint / route_guess 找到的路由会被标为辅助发现,不算爬取证据。

终端使用

${SKILL_DIR} 换成 ~/.claude/skills/seo-geo-site-audit

"${SKILL_DIR}/scripts/audit-site" https://example.com \
  --mode template --output-style operator --html-report --report-language chinese

完整参数列表见 skills/seo-geo-site-audit/references/cli-flags.md

Claude 补全 final-report.json 后,再渲染最终交付版 HTML:

"${SKILL_DIR}/scripts/render-report-html" \
  --report-json "${SKILL_DIR}/runs/site-audit-<host>-<stamp>/final-report.json" \
  --out "${SKILL_DIR}/runs/site-audit-<host>-<stamp>/audit-report.html"

产物

  • crawl.json — 单页信号
  • pagespeed.json — Lighthouse 数据(除非跳过)
  • audit-run.json — 本次运行 manifest
  • evidence-report.html — 原始证据 HTML(启用 --html-report 时)
  • final-report.json — Claude 补全的种子 payload
  • audit-report.html — 最终交付 HTML

爬虫对 SPA 的处理

每个 HTML 页面保留两条证据线:

  • search_engine_visibility — raw Googlebot 风格 HTTP 基线,不执行 JS。
  • 浏览器渲染证据 — SPA 在 JS 执行后展示给用户的内容。

只在渲染后出现的内容、导航、结构化数据或路由会被标为 JavaScript 依赖风险,而不是"Google 看不到"。只通过 dom_route_hint / route_guess 找到的页面属于审计辅助发现,不会写成搜索引擎可直接爬取。

安全说明

仓库设计为可安全公开克隆。

  • 源码、文档、产物中都不应硬编码 API key / token / 密钥。
  • Lighthouse 在本地运行,不需要第三方 API key。
  • Chrome 沙箱默认开启;只在受信任的 root/CI/容器环境里通过 SEO_GEO_ALLOW_NO_SANDBOX=1 关闭。
  • --auto-install-prereqs 是 opt-in。Lightpanda 二进制下载默认要求注册 SHA256,或显式设置 SEO_GEO_ALLOW_UNVERIFIED_LIGHTPANDA=1

完整说明见 skills/seo-geo-site-audit/SECURITY.md

贡献

欢迎 clone / fork。觉得有用的话顺手点个 star 就很感谢。遇到 bug 或有建议,欢迎提 issue。