内容
# SEO 审计控制台
**一种技术性的 SEO 审计,您可以与之进行对话 - 基于您自己的搜索控制台数据和网站的实时爬取,在 Claude 中运行。**
[](./LICENSE)
[](https://modelcontextprotocol.io)
[](https://nodejs.org)
**完整的 technical SEO 审计,以对话速度进行。** SEO 审计控制台将您的 **Google 搜索控制台** 历史记录、网站的**第一方爬取**以及按需 **DataForSEO** 市场数据合并为 Claude 中的一项优先审计 - 从爬取能力、索引、规范化、结构化数据、核心网页生命指标和 hreflang 一直到关键词蚕食、临近距离查询、内容差距、竞争对手分析和 AI 搜索准备情况。九十项检查,每项发现都按可能恢复的点击量排名,每项修复都为您编写:可以直接粘贴的重定向、JSON-LD、内部链接和有根据的内容简报。曾经需要两周的爬取、导出和交叉参考电子表格,现在只需要二十分钟和一个提示 - 而您的数据从未离开您的机器。
**由 [Houtini](https://houtini.com) 构建。** 我们为数字营销的繁琐工作构建自动化 - 数据收集、爬取、合并、检查 - 以便您的团队可以专注于需要人类参与的思考、策略和客户工作。这个插件是将这个想法应用于技术 SEO 审计的体现。
```console
you › 对 simracingcockpit.gg 运行 SEO 审计
⣾ 搜索控制台 1.8M 行同步(19 秒 - 增量)
⣾ 爬取 868 页面 · HTTP/2 · robots-polite · 8 并行
⣾ 链接图 内部 PageRank · 点击深度 · 入度
✓ 90 项检查 · 220 项发现 · 按预期点击量排名
#1 点击率远低于预期位置 /how-to-install-mods XL
#2 页面失去点击量(趋势) 全站 XL
#3 关键词蚕食 "beamng drive mods" L
#4 被 robots 阻止的页面仍在赚取流量 /category/wheels L
you › 为 #1 生成修复 ▍
```

## 二十年变化不大
2006 年,我为客户编写的技术审计在结构上仍然与大多数机构今天销售的审计类似。一个爬虫运行,一个模板填充,一个 60 页的 PDF 文件。爬虫能找到的所有内容,按严重性顺序排列,但不知道哪些发现值得关注,哪些是无关紧要的。
但变化的是可能性。Google 为每个网站所有者提供了一个完整的搜索现实记录 - 哪些查询,哪些页面,多少印象,排名在哪里。您的爬取告诉您网站说了什么。搜索控制台告诉您 Google 对此做了什么。而在我看来,两个数据集之间的差距是几乎所有可恢复流量隐藏的地方。
所以我构建了 SEO 审计控制台。它是一个 [Model Context Protocol](https://modelcontextprotocol.io) 服务器,将您的 **搜索控制台历史记录** 与 **网站的第一方爬取** (以及您需要的 **DataForSEO**)合并为一件事:一个优先的、基于证据的审计,您可以在 Claude Desktop 中询问。它为您提供可以直接粘贴的修复。每个发现都追溯到一个真实的数据点。
一个理念贯穿始终:
> **您的爬取是意图。搜索控制台是现实。钱在于它们之间的差异。**
一个扁平的爬虫告诉您一个页面 404。但这只是而已。而这个审计告诉您 404 正在耗费首页 15% 的内部 PageRank,该页面每月曾获得 10,000 次点击,并为您编写 301 规则来修复它。它找到排名第 #3 的页面,拥有 150,000 次印象,点击率却只有 0.2% - 标题重写可能带来数千次点击 - 并将其排名高于无关紧要的发现。严重性是爬虫卖给您的东西。收益才是真正改变数字的东西。
### 谁是此工具的适用对象?
想要自动化收集和检查的 SEO 顾问,以便有更多时间思考。想要避免昂贵审计的内部营销人员。以及想要了解优秀审计实际检查内容的任何人 - 因为每个发现都显示其证据,该工具兼作教师。
关于在哪里运行它的说明。Claude Desktop 是一个很好的起点,但我认为 **Claude Code 是此工具的最佳归宿** - 因为它可以闭环。在聊天客户端中,审计为您提供一个 301 规则以粘贴到某个位置。在 Claude Code 中,同一个会话拥有您的网站仓库、终端和 git:审计发现问题,编写修复,应用到代码库,提交并重新爬取以验证。从发现到部署修复,一次对话。
您不需要学习界面。您只需在 Claude 中输入 **"对 mysite.com 运行 SEO 审计"**,审计就会进行。忘记可能性了吗?询问 **"运行 seo_audit_help"**,您将获得完整的菜单和示例提示。
### 这种方法有效吗?
是的。爬取加 GSC 合并不是新鲜事;这是方法。在一个属性上,从搜索控制台 URL 开始进行爬取,覆盖率从 29% 增加到 70% - 这些额外的页面都是常规爬取无声无息地错过的,而其中一些页面竟然在没有内部链接指向它们的情况下获得了流量。在同一个属性上,增量同步将 33 分钟的数据刷新变成了 19 秒,这是一个从“季度审计”到“随时审计”的巨大差异。
---
## 审计实际检查的内容
让我们明确审计范围。`run_audit` 对联合数据执行 **90 项检查**,并返回一个排名列表 - 不是所有内容的墙,而是优先顺序,并附上每个发现的相关流量。
| 类别 | 检查内容 |
|---|---|
| **爬取能力和索引** | 损坏的内部链接、重定向链、通过重定向的链接、深层页面、孤立页面、索引膨胀、分页蜘蛛陷阱、仍在赚取流量的 robots 阻止页面,以及每个 URL 为何不可索引的原因 |
| **规范化和指令** | 损坏和链状规范目标、分页规范化到第 1 页、noindex 冲突、HTTPS→HTTP 翻转 |
| **页面优化** | 重复标题和元描述、标题/H1 不匹配、缺少 alt 文本、标题层次、混合内容、图像尺寸(CLS)、语言属性、favicon、分析存在 |
| **结构化数据** | 涵盖 ~30 种丰富结果类型的本地验证器(产品、文章、职位发布、数据集、酒店等)- 必需字段、值健全性、不可能日期。仅按设计要求,避免 Google 忽略的属性 |
| **国际化** | 损坏的 hreflang 目标、缺少返回标签(x-default 计数,应为) |
| **性能** | 根据估计的传输大小测量的过大 HTML、未压缩的响应、忽略条件请求的服务器(无 304)、以及测量的核心网页生命指标 |
| **新鲜度诚实度** | 与现实相比,站点地图 `<lastmod>` 声称经过测试 - 生成器时间戳、未来日期、爬取之间声称的变化,但实际上没有变化 |
| **趋势(随时间变化的 GSC)** | 页面按时间段失去点击量、页面排名下滑、消失的查询、值得关注的页面上升、一年年衰减的陈旧内容 |
| **合并问题** | 蚕食(阈值调整后忽略偶然的长尾重叠)、临近距离查询、鬼页面、死 URL 的流量、浪费在无点击页面上的内部权限、缺少查询的标题和 H1 |
| **AI 搜索准备就绪** | 您排名但正文从未提及的短语、您的副本从未回答的查询、连贯的入口锚文本、不适合检索的内容 |
每项检查都标记为 **D** (确定性 - 这里是字节)或 **N** (判断 - 默认关闭,询问 **"the judgement findings"** 以查看它们)。在我看来,错误的发现比没有发现更糟糕,因此启发式检查必须征求许可。
---
## 爬虫,正确解释
通常审计会在这里出错,所以值得了解这个爬虫有什么不同。我花了足够的职业生涯来清理那些自欺欺人的爬虫。
**它通过三种方式发现页面。** 跟随链接、读取 XML 站点地图,以及 - 最重要的一点 - 直接从 Google 已经发送流量到您网站的每个 URL 开始,使用您的 GSC 数据。覆盖范围取决于您的站点地图是否诚实。这也是鬼页面被捕获的方式:如果 Google 排名一个 URL,而您的网站结构无法到达该 URL,则该 URL 仍然会被爬取,而不匹配就会成为一个发现。
**它记录 *原因*,而不仅仅是 *什么*。** 对于每个不可索引的 URL,它存储原因 - 404、noindex、X-Robots 头、规范化到其他地方、robots 阻止、非 HTML。“此页面不会排名”是一个事实;“此页面不会排名,因为插件设置了 nobody 记得的 X-Robots 头”是修复。
**它拒绝被愚弄。** 重定向到您的站点(Shopify OAuth 流,我看着你)被记录为重定向出口,永远不会存储为页面。它总是使用 GET 而不是 HEAD,因为 HEAD 请求确实可以返回与实际请求不同的状态 - 但它放弃图像、PDF 和资产的正文,因此它记录状态和大小而不下载字节。
**它快速而不粗鲁。** HTTP/2 在您的起源支持的情况下 - 八个并行请求通过一两个连接复用,而不是八个套接字 - 协商 gzip 和 brotli,保持活动连接重用。速度来自效率,而不是用力冲击您的服务器。它正确地尊重 robots.txt(一个机器人特定的组替换 `*`,按照规范,很多商业爬虫都搞错了),当您的主机限制速率时,它会退后,并跳过垃圾邮件:内部搜索、分页筛选组合、登录流程。这是您自己的网站的爬虫。做一个好客是重点。
爬取后,它计算一个真正的链接图:具有向下加权导航和页脚链接的内部 PageRank,从首页计算点击深度仅限于正文链接,每个页面的入度。该图为孤儿、权益泄漏和链接不足的页面检查以及工具建议内部链接时的捐赠者排名提供支持。
---
## 分步骤的方法论
我将带您了解我实际使用的流程。每个流程都是一个真正的程序,带有提示。采用该方法论:它是一种可以开发和修改以适应口味的东西。
### 1. 您的第一次审计
> 列出属性
> 刷新 sc-domain:mysite.com
> 对 mysite.com 运行 SEO 审计
中型网站上只需 20 分钟,大部分时间用于爬取。返回的是一个排名列表,前五项发现通常比其他 85 项更值得关注。询问其中任何一项:**"显示 cannibalisation 发现的证据"**。然后 **"生成修复"**。
`fix_finding` 是改变游戏规则的部分。一个完整的 JSON-LD 块从您自己的页面数据构建。 `.htaccess`、nginx 或 Next.js 风格的精确匹配 301 规则 - 使用爬虫实际记录的目的地,对真正死亡的 URL 进行模糊匹配,并告诉您何时正在猜测。内部链接捐赠者的排名列表:您的最高权威页面尚未链接到需要它们的页面。所有这些都是干预运行的。它返回工件;它永远不会触摸您的网站。
### 2. 全站关键词优化
我最常用的工作流程。问题不是“ 我应该针对哪些关键词?”,而是“ 我的副本在哪里未能说出我已经排名的内容?"
运行审计并查看合并后的发现:标题缺少查询页面排名,H1 不匹配,短语您在正文中从未提及却有印象。这些是 Google 已经半信任的页面。您不是在追逐新的排名 - 而是在弥补您获得的需求和您提供的副本之间的差距,这要容易得多。
> 评估 mysite.com 的段落
现在更深入一步。一个小型本地相关性模型(下载一次,~25MB,无需 Python,您的内容从未离开您的机器)会读取每个排名页面与其顶部查询并评估是否有任何段落实际回答它。它是一个分类器,而不是生成器 - 它无法胡乱生成。排名靠需求但密集回答的页面是您的改写列表,按优先级排序。
> 为 /sim-racing-wheels 撰写缺失的内容
以及后续工作:一个有根据的写作简报,从页面本身构建 - 查询差距、页面的段落作为语音示例,其最相关的查询段落作为唯一允许的事实。Claude 以您网站的**语气**起草缺失的段落,绝不创造任何内容。在拥有数百个索引页面的网站上,这将传统的关键词映射工作压缩成一个下午。
### 3. 修复蚕食
考虑这种情况。您的两个页面竞争相同的查询,Google 在它们之间交替,两个页面都不稳定。经典,而且悄悄地很昂贵。
> 显示 mysite.com 的蚕食发现及证据
审计发现这些,阈值调整以忽略偶然的长尾重叠 - 一个页面有 59,000 次印象的术语不与七个页面竞争,它们获得了 7 次印象。证据显示每个竞争 URL 的份额,因此合并/区分/规范化决策基于数字而不是感觉。
### 4. 内容刷新列表
> 对 mysite.com 运行 SEO 审计并包括判断发现
趋势家族揭示了衰退:页面一年比一年失去点击量,排名靠前的页面下滑,查询消失。陈旧内容会悄悄衰退 - 这使得它变得响亮。将其与下一个工作流程进行交叉引用,您就有了一个季度的内容计划:刷新、编写或让其死亡。
### 5. 新内容管道
> 为 mysite.com 建议新页面
`suggest_pages` 从您自己的印象中工作 - Google 已经向您展示的需求,在 11+ 排名中没有获胜页面。它严格消除重复项(如果您已经有一个页面,或者一个 URL 已经主导某个主题,则不会建议新页面),并命名最近的现有页面以链接每个新页面,因此没有任何页面作为孤立页面启动。连接 DataForSEO 后,根据实际成交量计算每个创意的大小,并添加竞争对手差距:竞争对手排名的查询中没有您的身影。
### 6. 模板玩法
> 列出 mysite.com 的页面模板
大型网站不是 50,000 个页面;它们是十二个模板,重复出现。一个模板修复可以纠正集群中的每个页面。在电子商务和程序化内容中,这是长尾收益的隐藏之处,这也是我对超过几千个 URL 的任何内容开始关注的镜头。
### 7. 监控、迁移和“发生了什么变化?”
> 检测 mysite.com 的变化
按计划刷新并对比两个最近的爬虫,按严重程度:页面变为 noindex、规范化翻转、标题更改、模式消失。在迁移过程中,这是发现一个流氓 noindex 的区别 - 在星期二捕捉到,周三在董事会会议上解释星期一的流量图表。我曾经是错误的一方。
### 8. AI 搜索准备就绪
> 检查 mysite.com 的代理准备情况
网络正在悄悄发展第二个受众群体 - AI 代理 - 它们通过 `llms.txt`、`agents.md`、robots.txt 中的 AI 机器人规则、MCP 服务器卡找到站点。几乎没有 SEO 工具检查任何一项。 这为您提供 0-100 的可发现性、内容、机器人访问和功能得分,并提供复制粘贴修复 - 它不会被返回 200 的 catch-all 路径愚弄。将其与段落评分(工作流程 2)配对,您就涵盖了两个部分:代理所需的架构和 AI 搜索实际引用可提取的答案。
### 9. 报告
> 显示 mysite.com 的仪表盘
> 导出 mysite.com 的报告
仪表盘直接在聊天中运行:发现树形图、排名趋势、权益与现实的散点图(内部 PageRank 与实际印象,结构故事跃然而出)、蚕食随时间变化、CSV 导出。导出与自成一体的 HTML 文件 - 发送给客户,无需安装,每个声明都追溯到数据点。
搜索性能选项卡是 Google 搜索控制台视图您希望 Google 提供的 - 而由于历史记录存放在您自己的数据库中,因此不会限制 16 个月:

新增功能(以及费用)
上述所有功能都仅使用您的搜索控制台数据即可实现。但 GSC(谷歌搜索控制台)只能描述您已经出现在其中的搜索。当您的问题是“这个市场的规模有多大?”或“竞争对手排名高于我却没有的内容是什么?”时,您需要第三方数据 - 这就是 [DataForSEO](https://dataforseo.com/?aff=213701):一个按需付费的 API,提供搜索量、实时排名、竞争对手数据和 Lighthouse 运行结果。无需订阅。您可以充值余额;每次调用的费用从几分钱到几美分不等。
- `keyword_volume` · `related_terms` - 真实的每月搜索量和相关搜索词。您可以在撰写内容之前使用它来评估机会。
- `search_intent` - 将查询分类为信息类、商业类、导航类和交易类,并提供检查功能,标记排名靠前的博客帖子是否为购买查询。
- `competitors_domain` · `page_intersection` - 您的实际竞争对手(通过排名重叠测量,而非您认为的竞争对手),以及内容差距。
- `page_lighthouse` - 实验室版核心网页指标(Core Web Vitals),每 URL 提供高收益率的 CWV 失败检查。
- `pull_backlinks` - 您的反向链接配置文件,实时状态检查,确保指向 404 页面的链接被捕获。(注意:反向链接是与 SERP/关键词/实验室单独的 DataForSEO 订阅。如果未激活,工具会明确说明。)
我会谨慎使用您的余额。调用仅在**按需**进行 - 每次您提出问题时,缓存 20 天,从不批量后台调用。 我自己的使用每月仅花费几美元。
---
## 安装
### 开始前您需要
- **Node.js ≥ 20**
- **Claude Desktop**(或任何 MCP 客户端)
- 您拥有的 **Google Search Console** 属性(免费 - 如果您的网站尚未在此处验证,请先进行验证;这只需几分钟,您应该无论如何都拥有它)
- *可选:* **DataForSEO** 账户
### 1. 构建
```bash
git clone https://github.com/houtini-ai/seo-audit.git
cd seo-audit
npm install
npm run build
```
### 2. 连接 Google Search Console
工具通过 **Google Cloud 服务账户** 读取 GSC - 一个机器人登录,您只需创建一次,而不是每次会话都进行 OAuth 授权:
1. 在 [Google Cloud Console](https://console.cloud.google.com) 中,创建一个项目并 **启用 Search Console API**。
2. 创建一个 **服务账户** 并下载其 **JSON 密钥**。
3. 在 [Search Console](https://search.google.com/search-console) 中,在 *设置 → 用户和权限* 下,将服务账户的电子邮件地址添加为 **用户** 到您要审计的每个属性中。
第三步是人们常会忽略的。服务账户是一个独立的“人” - 它在您将其添加到属性中之前是看不到任何内容的,就像任何同事一样。
### 3. 配置 Claude Desktop
将以下内容添加到 `claude_desktop_config.json`(设置 → 开发者 → 编辑配置):
```json
{
"mcpServers": {
"seo-audit-console": {
"command": "node",
"args": ["C:/path/to/seo-audit-console/dist/index.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "C:/path/to/service-account.json",
"SAC_DATA_DIR": "C:/path/to/where/audits/are/stored",
"DATAFORSEO_USERNAME": "you@example.com",
"DATAFORSEO_PASSWORD": "your-dataforseo-password"
}
}
}
}
```
仅 `GOOGLE_APPLICATION_CREDENTIALS` 是必需的。重启 Claude Desktop,然后询问 *"list properties"* 以检查是否已连接。
| 环境变量 | 必需 | 用途 |
|---|---|---|
| `GOOGLE_APPLICATION_CREDENTIALS` | GSC 服务账户 JSON 的路径 |
| `SAC_DATA_DIR` | 可 每个属性的 SQLite 数据库和报告存储位置(默认为Documents/seo-audit-console`) |
| `DATAFOR` / `DATAFORSEO_PASSWORD 可选 | 启用关键词 / SERP / 竞争对手 / CWV向链接工具 |
| `DATAFORSEO_CACHE_DAYS 可选 | DataForSEO 响应缓存 TTL(默认为 ) |
---
## 工具概览
| 工具 |
|---|---|
| `refresh_property` | 一步SC + 爬取 + 排名历史 |
sync_gsc` ·_crawl` · `` · `track_r | 独立运行单个| `check_sync_status` · `check_crawl_status` | 查看长时间作业的进度 |
| `run_audit` | 评分、优先级查找结果 → Markdown |
| `query_audit` ·` | 命名检查及其证据 · 列出每个检查 |
fix_finding` | 可粘贴的修复JSON-LD / 内部链接) |
| `list_templates` | 将类为模板(一次 N 个页面) |
suggest_pages` |需求的新页面创意 |
| `score_passages` |模型:任何段落是否回答了页面的顶部查询? |
| `draft_content` | 基础写作简报,以便 Claude 可以用您网站的起草缺失的段落 |
| `detect_changes` | 两个最近爬取之间按严重程度变化的内容 |
| `check_agent_readiness` | 0-100 AI 代理准备度评分,附带复制粘贴修复 |
| `resolve_entities` | 将页面映射到 Wikidata 实体,找到实体链接缺口 |
| `get_dashboard` · `export_report` |式聊天仪表盘分享的 HTML | `keyword_volume`related_terms` · `ent` | DataForSEO 关键词数据 |
| `_domain` · `page` | DataForSEO 竞争对手 / 内容差距数据 |
| `page_lighthouse `pull_backlinks 实验室 CWV ·状态的反向链接| `normalize_url`data_location` · `` | 实用工具 |
|_audit_help`每个功能及示例提示 |
---
## 底层工作原理
连接键(`url_key`)。** GSC` 和爬取 `url` 都归一化为 - 强制使用 HTTPS apex,剥参数等。所有操作都基于此连接。
- **一个 SQLite 数据库**(WAL,预备语句)。您的数据保留在本地机器上。
- **评分一次,按。** `(预期点击 收益 × 确定 努力`索引,确保即使 GSC数百万行时,保持快速。
- **您的历史记录。** 爬取和同步不会在实际开始到达之前一次快照 - 网站取过程中宕机您的数据丢失。
-限您拥有的网站,预运行修复。**爬取您控制的生成器会返回工件。它们永远不会写入您的网站。这是底线。
## 隐私和数据
您的搜索控制台数据和爬取结果存储在 `SAC_DATA_DIR` 下的本地 SQLite 文件中落评分模型也在本地除了您触发的 API GSC 和SEO,如果您已设置,机器上不会有。没有遥测## 即将推出
我接下来要构建的,按大致顺序排列:
- **列表模式。**贴任何 URL 列表迁移映射、旧、PPC 导出进行状态检查和审计是迁移验证工作流。
- **基于模板的结构。** 不是“您没有 schema”(大多数现代商店而是“此模板可以获得评论星级 丰富结果,却没有- **每页卡。**表格,列出您的失的 **每个** 排名短语,而不仅仅查询。
- **更多度。** WebM咨询(您的网站可以向代理公开哪些工具操作)以及代理商务协议。
- **可打印报告。** 一份适当的 A4 文档,您可以交给客户,而不是幻灯片。
- **源级解析器检查。** 审计规范已编写 - 约 94 个检查,涵盖大多数工具从未触及的层:元素会默默破坏 `<head>` 解析被提升到正被忽略,原始与渲染结果的差异。
的边缘情况您希望能够处理吗?请 - 这正是合并 × 爬取检查功能的方式。
## 关于 Houtoutini](houtini.com) 只有一个:您的团队因重复工作而损失的时间。拉取搜索控制台导出、运行爬取、交叉引用电子表格、重新检查上个月的 这些都不需要人员完成您的团队本应用于策略、客户和推动。因此,我们自动化了这一层。SEO 审计基于同一原则构建的工具 如果机器、合并和检查数据就应该这样做。
许可或您希望自动化的内容:**hello@.com**
## 贡献
欢迎提出问题和拉。检查注册表(/audit/checks.ts`)旨在扩展 - 每个检查都是一个纯读取操作,作用于连接的数据,返回带有证据的发现结果,因此添加一个检查相对独立。有一个端到端烟雾测试npm run smoke`每个功能的探测器( probe:*`),以确保您的代码正确。
拉取请求,您授予 [LICENSE](./LICENSE) 中规定的许可。
##
**源代码可用,转换为开源。** 免费下载、构建和运行未修改的个人、评估和教育用途。商业用途 - 包括代理和客户工作 - 需要 [商业许可证](./COMMERCIAL.md),这只需发送一封电子邮件即可。修改和重新分发需要书面许可。每个发布的版本在发布后三年内自动成为 **2.0**,因此没有任何内容会永远被锁定。完整条款见 [LICENSE)。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器