我制作了一个 Claude Code 技能,用于检查 AI 爬虫能否读取你的网站
一个 Claude Code 技能,通过分析原始 HTML 判断网站对 AI 搜索引擎的可见性,并提供框架特定的修复方案。
许多网站依赖 JavaScript 渲染内容,但 AI 爬虫(如 ClaudeBot、GPTBot、PerplexityBot、Bytespider、Meta-ExternalAgent)并不执行 JavaScript,它们只读取服务器返回的原始 HTML。这意味着一个在 Google 上排名良好的客户端渲染网站(如使用 React、Vue、Svelte 等构建的单页应用)可能在 AI 搜索结果中完全不可见。如果你曾思考“为什么我们有 Google 流量但来自 AI 的流量为零”,或者你发布了一个炫酷的 SPA 但在 ChatGPT 中毫无踪影,这几乎总是原因。
为了解决这个问题,作者开发了一个 Claude Code 技能,用于检查网站对 AI 爬虫的可见性。该技能通过模拟非 JS 爬虫的方式获取页面原始 HTML,然后评估真实内容以及关键 SEO 信号(如标题、元描述、规范链接、Open Graph、JSON-LD 和可爬取链接)是否存在。每个页面会得到三种判定之一:✅ VISIBLE(可见)——真实内容在原始 HTML 中,爬虫可以读取;⚠️ PARTIAL(部分可见)——只有一小部分在原始 HTML 中,主体内容由 JS 渲染;❌ INVISIBLE(不可见)——爬虫收到一个空壳,没有任何有用内容。该技能只诊断和开处方,不写营销文案、不做关键词研究、不追逐反向链接。
安装非常简单:只需将项目文件夹放入 Claude Code 的技能目录即可。个人使用:git clone ... ~/.claude/skills/ai-crawler-visibility;项目范围:git clone ... ./.claude/skills/ai-crawler-visibility。无需 npm install、无需 API 密钥、无需第三方包,分析器仅依赖 Python 3。
使用也很方便:只需用自然语言与 Claude Code 交流,技能会自动触发,例如“为什么我的网站在 ChatGPT 中不显示?”、“我的新网站对 AI 搜索引擎可见吗?”、“我添加了 JSON-LD 但富结果仍未显示”。你也可以直接运行捆绑的分析器:python3 scripts/check_visibility.py https://thesite.com,支持多个页面或从 sitemap 中取样(--sitemap 和 --limit)。添加 --json 可以程序化处理结果。注意始终检查生产 URL,而不是 localhost,因为本地开发服务器无法反映部署站点向爬虫提供的方式。
报告示例:它会列出所有 URL 的判定结果,然后说明爬虫实际看到的内容(如 / 可见文字数为 0,缺少元描述、规范链接、Open Graph、JSON-LD、可爬取链接),然后给出具体修复步骤(最高影响优先),最后给出如何确认修复的方法——查看页面源码(而非检查元素),确认标题文本和 JSON-LD 出现在原始 HTML 中。
该技能不仅诊断问题,还提供框架特定的修复方案。例如,它可能建议使用特定的预渲染工具或静态注入 JSON-LD,而不是泛泛地建议“考虑 SSR”。每次修复都附带验证步骤,确保问题得到解决。对于非开发人员,作者还提供了一个付费的 AI 爬虫修复包,可自动将静态 SEO + JSON-LD 注入 index.html,设置构建后预渲染,并通过审批门确保不触及你的代码库,然后重新运行诊断以证明修复生效。诊断功能始终免费。
工作原理简版:导致页面不可见的不是 User-Agent,而是不执行 JavaScript。(脚本仍会发送真实的机器人 UA 作为第二个请求以检测服务端预渲染。)由 JavaScript 注入的 JSON-LD 对不渲染的爬虫不可见,它必须出现在原始 HTML 中。水合(Hydration)没问题,因为它将事件处理程序附加到已渲染的 HTML,内容已在。纯客户端渲染(CSR)才是问题。“查看页面源码”显示原始 HTML(爬虫看到的),“检查”显示渲染后的 DOM(爬虫不看到的)。始终用查看页面源码来验证。
该项目使用 MIT 许可证,由 Novae Systems 构建——为本地企业提供网站、AI 自动化和 SEO 服务。