claude-seo 的 Bing Webmaster + IndexNow 扩展:为 Microsoft Copilot 引用与非 Google 索引构建可验证的 SEO 工作流
【免费下载链接】claude-seoUniversal SEO skill for Claude Code. 26 sub-skills + 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-seo
导读
claude-seo是一个面向 Claude Code 的通用 SEO 技能集(Universal SEO skill),其中seo-bing技能专门负责非 Google 搜索引擎的表面:通过 Bing Webmaster Tools API 获取入站链接与竞品对比数据,通过 IndexNow 协议向 Bing/Yandex/Seznam/Naver 一次性提交 URL,并借助 Bing 索引为 Microsoft Copilot 提供可引用内容。本文将以 SKILL.md 为核心骨架,结合仓库中bing_webmaster.py、indexnow_submit.py、url_safety.py等脚本的实现细节,为你讲清从安装、密钥配置、命令路由、IndexNow 校验到跨技能协作的完整闭环,让你能把 Bing 索引与 Copilot 引用纳入日常 SEO 工作流。
一、为什么需要seo-bing:非 Google 索引面与 Copilot 引用的入口
claude-seo的核心目标是“Google 之外也能被看见”。技能文档开篇即点明:
Google 至今仍拒绝 IndexNow(据 Gary Illyes 在 2024–2025 年多期 Search Off the Record 播客中的说明),所以本技能专门面向Bing/Yandex/Seznam/Naver 索引与Microsoft Copilot AI 引用(Copilot 的引用来自 Bing 索引)。
这意味着在 claude-seo 的体系中,seo-bing与以 sitemap 驱动、不支持 IndexNow 的seo-google是两套完全不同的索引模型(详见文档 Cross-skill delegation 一节),二者不能互相替代。整个技能由一个 SKILL.md 元信息头声明版本(当前为v2.2.0)与兼容性要求:
name: seo-bing description: Bing Webmaster Tools + IndexNow extension. Microsoft Copilot citations are fed by the Bing index; this skill makes Bing visibility, link data, and IndexNow URL submission first-class. metadata: version: "2.2.0" compatibility: "Requires BING_WEBMASTER_API_KEY and (optionally) INDEXNOW_KEY in ~/.claude/settings.json env. Run extensions/bing-webmaster/install.sh to configure."二、安装与前置条件:两条安装脚本、三组密钥
2.1 安装方式
技能文档要求先安装扩展本身:
# Linux / macOS ./extensions/bing-webmaster/install.sh # Windows PowerShell .\extensions\bing-webmaster\install.ps1安装脚本会检查 Python 3 是否可用、claude-seo 基础技能(~/.claude/skills/seo)是否已安装,然后把seo-bing/SKILL.md拷贝到~/.claude/skills/seo-bing/,最后把用户提供的密钥写入~/.claude/settings.json的env字段。从 install.sh 的源码可以看到三个交互式输入项,且任选其一即可:
| 输入项 | 环境变量 | 说明 |
|---|---|---|
| Bing Webmaster Tools API key | BING_WEBMASTER_API_KEY | 必选其一,获取于 bing.com/webmasters 的 API 页面 |
| IndexNow host key | INDEXNOW_KEY | 任意 32+ 字符随机串,需发布在站点的<key>.txt文件 |
| IndexNow keyLocation URL | INDEXNOW_KEY_LOCATION | 必须能公开访问到密钥文件,如https://example.com/<key>.txt |
若只使用 IndexNow 提交(不查链接),Bing API key 可留空;反之亦然。脚本仅写入用户实际提供的变量,安装器本身不会联网,只做本地配置写入。
卸载同样简单:./extensions/bing-webmaster/uninstall.sh会删除~/.claude/skills/seo-bing目录,并清空settings.json中的三个环境变量。
2.2 从脚本视角看密钥读取
scripts/bing_webmaster.py通过backlinks_auth.py读取配置,其读取顺序是先配置文件后环境变量:
- 配置文件:
~/.config/claude-seo/backlinks-api.json(bing_api_key、bing_verified_sites) - 环境变量:
BING_WEBMASTER_API_KEY
从 backlinks_auth.py 的load_config()实现可见,bing_api_key存在环境变量缺失时才回退到配置文件。--check bing命令可快速确认凭据是否就绪。若运行时未配置密钥,bing_webmaster.py会提示运行python scripts/backlinks_auth.py --setup。
三、命令路由:一个技能、四个命令、两个脚本
SKILL.md 用一张路由表把 Claude 的自然语言命令映射到底层脚本,这是整个技能的“操作面”:
| 命令 | 底层脚本 |
|---|---|
/seo bing links <url> | python3 scripts/bing_webmaster.py links <url> |
/seo bing compare <urlA> <urlB> | python3 scripts/bing_webmaster.py compare <urlA> <urlB> |
/seo bing submit <url>(单条) | python3 scripts/indexnow_submit.py --host ... --urls <url> |
/seo bing submit-batch <file> | python3 scripts/indexnow_submit.py --urls-file <file> |
/seo bing verify-indexnow | python3 scripts/indexnow_submit.py --verify-only |
对应地,bing_webmaster.py的 CLI 接受三个子命令:links(入站链接)、counts(总量)、compare(与竞品对比),并支持--page(分页,默认 0)与--json(结构化输出)参数。
四、Bing Webmaster API 客户端:links / counts / compare 三个数据能力
4.1 底层实现要点
scripts/bing_webmaster.py将 API 基础地址定义为https://ssl.bing.com/webmaster/api.svc/json,每个请求自动携带apikey参数,并内置两层保护:
- 限速:
_rate_limit()强制两次请求之间至少间隔 1 秒(REQUEST_DELAY = 1),避免触发 Bing 的速率限制; - 密钥脱敏:
_redact_bing_api_key()会把请求异常文本中的 API key 替换为***REDACTED***,防止错误日志泄露凭据。
同时,该脚本对 HTTP 状态码做了语义化处理:401提示密钥无效、403提示站点未在 Bing Webmaster Tools 中验证、超时统一为 30 秒。
4.2 links:入站链接明细
get_link_details()调用GetLinkDetails端点,返回每个入站链接的source_url(来源页)、target_url(目标页)、anchor_text(锚文本)和date_discovered(发现日期),默认返回前 20 条并截断锚文本到 40 字符便于终端展示。
4.3 counts:总数快照
get_link_counts()组合调用GetUrlTrafficInfo与首页链接明细,返回total_links_sample(抽样链接数)。代码中明确备注:Bing 的链接数是抽样数据,若需要全量数据应改用 Moz API 或 DataForSEO(见bing_webmaster.py的 note 字段)。
4.4 compare:竞品外链缺口分析
compare_links()是 Bing 提供的免费且独特的能力:同时拉取自己和竞品的链接明细,按来源域名做集合运算,输出:
your_linking_domains/competitor_linking_domains:双方外链域名数gap_domains:竞品有而自己没有的域名(可挖掘的目标)shared_domains:共同域名unique_to_you:自己独有的域名
每次对比最多展示 50 个域名,并带有一条重要的数据边界说明:“基于 Bing 索引抽样,Bing 索引约占互联网的 15%”。这意味着 gap 结果应作为线索而非结论,与seo-backlinks的多源加权结合使用更稳妥。
五、IndexNow URL 提交:一条 POST 覆盖四个搜索引擎
5.1 提交前必须完成的密钥发布检查清单
SETUP 文档给出的 IndexNow 配置流程是:
- 生成密钥:
openssl rand -hex 32 - 把密钥保存为站点根目录下的
<key>.txt文件,确保https://example.com/<key>.txt可访问,文件内容就是密钥本身 - 运行
/seo bing verify-indexnow验证密钥是否发布正确——这是最容易犯错的第一个环节
5.2 verify-key:防患于未然的预检
indexnow_submit.py的verify_key_published()会实际抓取 keyLocation URL,并逐项核对:返回码是否为 200、正文是否与密钥完全一致、keyLocation 的主机是否与声明的主机匹配。任何一项不满足都会返回明确的错误原因(如keyLocation contents do not match key),并附带期望/实际的长度对比,便于快速排查。
5.3 批量提交的完整调用链
脚本支持两种 URL 来源:--urls(空格分隔多条)与--urls-file(每行一条、#开头视为注释)。提交核心submit()的验证链路非常严谨:
| 校验项 | 限制 |
|---|---|
| 空列表 | 拒绝提交 |
| 批量上限 | 单批最多 10,000 条(IndexNow 规范上限) |
| 密钥长度 | 8–128 字符 |
| 跨主机 | 提交的每条 URL 必须包含声明的 host,杜绝跨站提交滥用 |
| SSRF | 每条 URL 都经validate_url_strict()校验,拒绝私有 IP |
最终 POST 到统一入口https://api.indexnow.org/indexnow,一次请求同时覆盖 Bing、Yandex、Seznam、Naver 四个引擎(indexnow_submit.py返回结果中固定声明engines字段)。从 indexnow_submit.py 可见请求体为标准的host+key+keyLocation+urlListJSON 结构。
5.4 源码级安全设计:url_safety 的 SSRF 防护
值得展开的是 SSRF 校验的实现:indexnow_submit.py和bing_webmaster.py都依赖 url_safety.py。该模块在 URL 层面做了多层防御:
- 解析期拒绝:非 http/https 协议、带用户信息(userinfo)、含反斜杠的 authority 一律拒绝;
- 主机名归一化:小写、去除尾部点、把
2130706433这类十进制/十六进制混淆 IP 通过socket.inet_aton还原为点分形式,堵住经典的 SSRF 绕过; - 硬屏蔽名单:覆盖 AWS/Azure/GCP/Oracle/阿里云的元数据端点(如
metadata.google.internal、169.254.169.254); - 严格模式(DNS pinning):
validate_url_strict()先解析所有 A 记录,任何一条解析到非公网 IP 即拒绝,并在请求期间把socket.getaddrinfo替换为固定 IP,防止 DNS 重绑定攻击。
测试用例 tests/test_technical_depth.py 中test_indexnow_rejects_*系列验证了空列表、密钥过短、跨主机 URL、超批上限、私有 IP 等拒绝路径,说明这些边界是经过单测保障的(测试仅做校验,不触发真实网络请求)。
六、适用场景与跨技能协作
技能文档明确列出了seo-bing的三类典型适用场景:
- 发布新页面并希望获得 Microsoft Copilot 引用资格(依赖 Bing 索引摄入);
- 加速 Bing/Yandex/Seznam/Naver 对新 URL 的收录;
- 竞品外链分析:Bing 记录了 Google API 不暴露的独特链接数据。
在 claude-seo 的技能编排中,seo-bing有明确的分工边界:
- 针对 Google 索引,应使用
seo-google indexing技能(sitemap 驱动、不支持 IndexNow,模型完全不同); - 针对多源外链置信度加权,可回退到
seo-backlinks技能,它已整合 Bing + Moz + Common Crawl 三种数据源,并能通过 backlinks_auth.py 的--tier命令查看当前数据能力等级(Tier 0/1/2)。
七、Copilot 引用:为什么 IndexNow 值得做
SETUP 文档用一句话点明了业务价值:
Microsoft Copilot 从 Bing 索引获取引用。不在 Bing 中的页面就无法被引用。IndexNow 能在几分钟内把页面送进 Bing,而 Bing 的自然爬取可能耗时数天。对新内容上线来说,这是有意义的索引速度提升。
因此,claude-seo 将 IndexNow 提交设计为“一次提交、四引擎覆盖”的幂等操作:配合--verify-only预检和批量文件,你可以把发布流水线中的“通知引擎”环节自动化——这正是该扩展在生产中的核心用法。
八、实战速查:一条完整的上线流程
综合以上所有要素,一次典型的新页面发布 + 非 Google 可见性操作可以这样组织:
# 1. 配置密钥(首次) ./extensions/bing-webmaster/install.sh # 2. 生成并发布 IndexNow 密钥 openssl rand -hex 32 # 写入站点根目录 <key>.txt,内容为密钥本身 # 3. 验证密钥已正确发布 python3 scripts/indexnow_submit.py --host example.com \ --key $INDEXNOW_KEY --key-location $INDEXNOW_KEY_LOCATION --verify-only # 4. 提交新页面(单条或批量) python3 scripts/indexnow_submit.py --host example.com \ --urls https://example.com/new-post https://example.com/updated-page python3 scripts/indexnow_submit.py --host example.com --urls-file changed.txt # 5. 检查 Bing 入站链接与竞品缺口 python3 scripts/bing_webmaster.py links https://example.com --json python3 scripts/bing_webmaster.py compare https://example.com https://competitor.com --json # 6. 排查凭据 python3 scripts/backlinks_auth.py --check --json结语
seo-bing扩展把 Bing Webmaster API 与 IndexNow 协议打包成一个可被 Claude Code 直接调用的技能:安装脚本负责密钥配置,路由表负责命令到脚本的映射,bing_webmaster.py提供链接明细、总量与竞品缺口三种数据能力,indexnow_submit.py提供带预检与 SSRF 防护的批量提交,而url_safety.py在底层为所有网络请求兜底。它解决的不是“替代 Google SEO”,而是补上搜索引擎生态中常被忽略的非 Google 一侧——尤其是 Microsoft Copilot 引用的入口。若需进一步了解数据边界与多源权重策略,可继续阅读 seo-backlinks 技能与 backlinks_auth.py 的 Tier 说明。
【免费下载链接】claude-seoUniversal SEO skill for Claude Code. 26 sub-skills + 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-seo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考