章节 01
导读 / 主楼:Better Search Console:将 Google Search Console 数据与 Claude AI 结合的智能 SEO 审计工具
Better Search Console 是一个开源 MCP 服务器,能够将完整的 Google Search Console 数据同步到本地 SQLite 数据库,让 Claude AI 直接查询和分析,提供比传统工具更深入、更智能的 SEO 洞察和可执行建议。
正文
Better Search Console 是一个开源 MCP 服务器,能够将完整的 Google Search Console 数据同步到本地 SQLite 数据库,让 Claude AI 直接查询和分析,提供比传统工具更深入、更智能的 SEO 洞察和可执行建议。
章节 01
Better Search Console 是一个开源 MCP 服务器,能够将完整的 Google Search Console 数据同步到本地 SQLite 数据库,让 Claude AI 直接查询和分析,提供比传统工具更深入、更智能的 SEO 洞察和可执行建议。
章节 02
setup:首次运行体验,列出所有属性并同步数据\n- sync_gsc_data:同步单个属性的完整数据\n- sync_all_properties:并行同步所有可访问的属性(最多 2 个并行)\n- check_sync_status:查看同步进度\n- cancel_sync:停止正在进行的同步\n\n数据保留策略也经过精心设计:最近 90 天的数据永不删除;目标国家(美国、英国、欧盟、澳大利亚、加拿大)的零点击行仅在至少有 5 次展示时保留;非目标国家的零点击行完全删除;有点击的行永不删除。这种策略在 980 万行的数据库测试中,成功删除了 630 万行(64%),将存储大小从 6GB 缩减至 2.2GB,同时保留了所有有价值的点击数据。\n\n## 核心 SEO 审计功能\n\nBetter Search Console 提供了 16 种预置的分析洞察类型,覆盖了 SEO 优化的各个关键维度:\n\n### 1. 整体趋势概览(Summary)\n\n通过 get_overview 和 get_dashboard 工具,用户可以快速了解所有属性的整体表现。仪表板采用 Chart.js 和 Vite 构建,生成为自包含的 HTML 文件,通过 MCP 的 ext-apps 协议在 Claude Desktop 中嵌入显示。功能包括指标切换(点击、展示、CTR、排名)、周期对比、正则过滤、日期范围预设以及自动明暗主题切换。\n\n### 2. 快速获胜机会识别(Quick Wins)\n\n"Striking Distance Keywords" 是指排名在 5-20 位、展示次数较多但尚未进入首页的关键词。这些关键词距离首页仅一步之遥,小幅优化就能带来显著回报。用户可以通过自然语言提问:\n\n> "找出我排名在 5 到 20 位、展示超过 500 次的关键词。这些关键词在哪些页面上,需要做哪些优化才能进入首页?"\n\n### 3. 内容衰退诊断(Content Decay)\n\n内容衰退是指曾经表现良好的页面正在失去流量。及时发现并处理这些页面,可以防止进一步下滑。Claude 可以分析数据并回答:\n\n> "哪些页面相比上一周期失去了最多点击?重点关注之前至少有 50 次点击的页面。"\n\n### 4. CTR 问题修复\n\n高展示低 CTR 意味着标题标签和元描述不够吸引人,或者有 SERP 特性抢占了点击。通过分析,Claude 可以识别这些问题页面并建议改进方案:\n\n> "展示超过 10000 次但 CTR 低于 2% 的页面有哪些?每个页面的平均排名是多少?"\n\n### 5. 关键词蚕食检测(Cannibalisation)\n\n多个页面竞争同一个查询会分散排名信号。通过自定义 SQL 查询,可以发现这些冲突:\n\nsql\nSELECT query, COUNT(DISTINCT page) as pages, SUM(clicks) as clicks\nFROM search_analytics\nWHERE date >= '2025-01-01'\nGROUP BY query HAVING pages > 1\nORDER BY clicks DESC LIMIT 20\n\n\n### 6. 新机会发现\n\n识别本月新出现、上月未排名的查询,这些往往是新兴的内容机会:\n\n> "本月出现了哪些我上月未排名的新查询?哪些查询展示次数最多?"\n\n### 7. 设备与国家分析\n\n通过 device_breakdown 和 country_breakdown 洞察,可以比较桌面与移动端的 CTR 差异,发现移动体验问题,或识别有本地化机会的国家市场。\n\n### 8. 完整审计总结\n\n最强大的是让 Claude 基于完整数据给出综合建议:\n\n> "基于你在我的 Search Console 数据中看到的所有信息,给我列出本月应该优先处理的 5 件事,以提升自然流量。"\n\n## 自定义 SQL 查询能力\n\n对于高级用户,Better Search Console 提供了 query_gsc_data 工具,允许直接对 search_analytics 表执行任意 SELECT 查询。表结构包括:\n\n- date:日期(YYYY-MM-DD)\n- query:搜索查询\n- page:页面 URL\n- device:设备类型(DESKTOP、MOBILE、TABLET)\n- country:国家代码(ISO 3166-1 alpha-3)\n- clicks:点击次数\n- impressions:展示次数\n- ctr:点击率\n- position:平均排名\n\n这种开放的数据访问方式让用户可以构建完全自定义的分析逻辑,满足特定的业务需求。\n\n## 与 SEOgets 的对比\n\nBetter Search Console 与 SEOgets 代表了两种不同的 SEO 分析范式:\n\n| 特性 | Better Search Console | SEOgets |\n|------|----------------------|---------|\n| 价格 | 免费开源 | 49美元/月 |\n| 行数限制 | 无限制(完整分页) | 50,000 行 |\n| 数据存储 | 本地 SQLite,无限保留 | 云端托管 |\n| AI 分析 | Claude 直接查询数据并给出建议 | 无 LLM 集成 |\n| 自定义 SQL | 完全访问原始数据 | 不支持 |\n| 内容分组 | 无(可通过 Claude 按模式分组) | 支持,一键完成 |\n| 主题聚类 | 无(可让 Claude 聚类) | 支持,一键完成 |\n| 索引监控 | 不支持 | 支持,最多 5,000 页 |\n| 可分享报告 | 不支持 | 支持,客户门户 |\n| SEO 测试 | 不支持 | 内置支持 |\n| 多用户 | 不支持 | 支持,无限用户 |\n| 托管方式 | 自托管(你的机器) | 完全托管 |\n\n两者解决的问题不同:SEOgets 适合需要生产级仪表板、内容分组、主题聚类、索引监控和可分享客户门户的团队,尤其是向客户发送报告的代理机构;Better Search Console 则适合希望 Claude 直接审计网站并告诉具体修复方案的用户,数据完全在本地,完全免费。两者可以互补使用。\n\n## 部署与配置\n\n### 前提条件\n\n部署 Better Search Console 需要:\n\n1. 拥有 Google Cloud 服务账号并启用 Search Console API 访问\n2. 在 Google Search Console 中将服务账号添加为每个属性的用户(权限设为"完全")\n3. 安装 Node.js 和 npm\n\n### Claude Desktop 配置\n\n在 Claude Desktop 配置文件中添加 MCP 服务器:\n\njson\n{\n \"mcpServers\": {\n \"better-search-console\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@houtini/better-search-console\"],\n \"env\": {\n \"GOOGLE_APPLICATION_CREDENTIALS\": \"/path/to/your-service-account.json\"\n }\n }\n }\n}\n\n\n### Claude Code CLI 配置\n\nbash\nclaude mcp add \\\n -e GOOGLE_APPLICATION_CREDENTIALS=/path/to/your-service-account.json \\\n -s user \\\n better-search-console -- npx -y @houtini/better-search-console\n\n\n验证连接状态:claude mcp get better-search-console,应显示 "Status: Connected"。\n\n### 环境变量\n\n- GOOGLE_APPLICATION_CREDENTIALS(必需):服务账号 JSON 密钥文件路径\n- BSC_DATA_DIR(可选):SQLite 数据库存储位置,默认为 ~/seo-audits/better-search-console\n\n## 使用场景与最佳实践\n\n### 场景一:定期 SEO 健康检查\n\n每月运行一次完整审计,让 Claude 分析整体趋势、识别衰退内容、发现新机会。通过对比不同周期的数据,追踪优化效果。\n\n### 场景二:特定问题诊断\n\n当网站流量出现异常波动时,快速定位问题根源。是特定页面衰退?还是某些关键词排名下降?或者是 CTR 整体下滑?\n\n### 场景三:内容策略优化\n\n识别 striking distance 关键词,制定针对性的内容优化计划。发现关键词蚕食问题,整合或差异化竞争页面。\n\n### 场景四:技术 SEO 审计\n\n分析不同设备的 CTR 差异,发现移动体验问题。检查特定国家/地区的表现,评估国际化策略效果。\n\n## 局限性与注意事项\n\n尽管 Better Search Console 功能强大,但也存在一些局限:\n\n1. 需要 Claude Desktop 或 Claude Code:仪表板渲染需要支持 ext-apps 的 MCP 客户端,否则只能获得文本格式的回退响应\n2. 无多用户支持:目前仅支持单用户本地使用\n3. 无索引监控:无法追踪页面索引状态变化\n4. 无内置 SEO 测试功能:无法直接运行 SEO A/B 测试\n5. 大型网站初始同步较慢:1000 万行数据可能需要 5-10 分钟完成首次同步\n\n此外,使用过程中需要注意:\n\n- 服务账号需要在每个 Search Console 属性中单独授权\n- 定期运行 prune_database 清理过期数据,保持数据库性能\n- 敏感数据存储在本地,但仍需妥善保管服务账号密钥\n\n## 开源生态与社区贡献\n\nBetter Search Console 采用 Apache 2.0 许可证开源,代码托管在 GitHub 上。项目使用 TypeScript 开发,构建系统基于 npm 脚本。开发者可以通过以下命令参与贡献:\n\nbash\ngit clone https://github.com/houtini-ai/better-search-console.git\ncd better-search-console\nnpm install\nnpm run build\n\n\n项目欢迎社区贡献,包括功能增强、Bug 修复、文档改进等。开发命令包括:\n\n- npm run build:构建所有内容(服务器 + UI 包)\n- npm run build:server:仅编译 TypeScript\n- npm run build:ui:为所有三个 UI 视图构建 Vite\n- npm run dev:服务器 TypeScript 监视模式\n- npm start:运行编译后的服务器\n\n## 总结与展望\n\nBetter Search Console 代表了 SEO 工具演进的新方向:从被动的数据展示转向主动的智能分析,从受限的样本数据转向完整的原始数据访问,从固定的报表模板转向灵活的对话式交互。这种转变不仅提升了分析深度,也大大降低了专业 SEO 分析的技术门槛。\n\n对于希望充分利用 AI 能力优化网站搜索表现的用户来说,Better Search Console 提供了一个免费、开源、功能强大的解决方案。随着 MCP 生态的发展和 Claude 能力的不断增强,这类 AI 原生 SEO 工具有望成为行业标准实践。章节 03
Better Search Console:将 Google Search Console 数据与 Claude AI 结合的智能 SEO 审计工具\n\n在 SEO 优化领域,数据获取和分析一直是核心挑战。传统的 Google Search Console 界面虽然功能完善,但在数据导出、深度分析和智能洞察方面存在明显局限。Better Search Console 项目通过创新的 MCP(Model Context Protocol)服务器架构,将完整的 GSC 数据与 Claude AI 的强大分析能力相结合,为网站运营者提供了一种全新的 SEO 审计方式。\n\n项目背景与核心问题\n\nGoogle Search Console 是网站运营者了解搜索表现的重要工具,但其 API 存在明显的限制:默认情况下,API 仅返回 1000 行数据样本,这对于拥有大量页面和查询的大型网站来说远远不够。此外,传统工具往往只提供图表展示,缺乏深度的智能分析和可执行建议。\n\nBetter Search Console 的出现正是为了解决这些问题。该项目由 Houtini AI 团队开发,灵感来源于优秀的 GSC 分析平台 SEOgets,但采用了完全不同的技术路径。与 SEOgets 提供托管式仪表板不同,Better Search Console 打造了一个 AI 原生工作流,让 Claude 能够直接查询完整的数据集并给出具体的优化建议,而不仅仅是展示图表。\n\n技术架构与核心特性\n\nMCP 服务器架构\n\nBetter Search Console 基于 Model Context Protocol(MCP)构建,这是一种标准化的 AI 工具集成协议。通过 MCP,Claude Desktop 或 Claude Code 可以直接调用该服务器的各种功能,实现无缝的数据交互。这种架构的优势在于:\n\n- 标准化接口:遵循 MCP 规范,易于集成到任何支持 MCP 的 AI 客户端\n- 本地运行:数据完全存储在本地 SQLite 数据库,保障隐私安全\n- 无数据限制:同步完整数据集,而非受限的样本数据\n- 实时交互:通过自然语言对话即可触发复杂的 SEO 分析\n\n数据同步与存储机制\n\n项目采用 SQLite 作为本地数据存储方案,这种选择兼顾了性能与便捷性。数据同步过程支持完整分页,没有行数限制,即使是拥有数百万行数据的大型网站也能完整导入。同步工具包括:\n\n- setup:首次运行体验,列出所有属性并同步数据\n- sync_gsc_data:同步单个属性的完整数据\n- sync_all_properties:并行同步所有可访问的属性(最多 2 个并行)\n- check_sync_status:查看同步进度\n- cancel_sync:停止正在进行的同步\n\n数据保留策略也经过精心设计:最近 90 天的数据永不删除;目标国家(美国、英国、欧盟、澳大利亚、加拿大)的零点击行仅在至少有 5 次展示时保留;非目标国家的零点击行完全删除;有点击的行永不删除。这种策略在 980 万行的数据库测试中,成功删除了 630 万行(64%),将存储大小从 6GB 缩减至 2.2GB,同时保留了所有有价值的点击数据。\n\n核心 SEO 审计功能\n\nBetter Search Console 提供了 16 种预置的分析洞察类型,覆盖了 SEO 优化的各个关键维度:\n\n1. 整体趋势概览(Summary)\n\n通过 get_overview 和 get_dashboard 工具,用户可以快速了解所有属性的整体表现。仪表板采用 Chart.js 和 Vite 构建,生成为自包含的 HTML 文件,通过 MCP 的 ext-apps 协议在 Claude Desktop 中嵌入显示。功能包括指标切换(点击、展示、CTR、排名)、周期对比、正则过滤、日期范围预设以及自动明暗主题切换。\n\n2. 快速获胜机会识别(Quick Wins)\n\n"Striking Distance Keywords" 是指排名在 5-20 位、展示次数较多但尚未进入首页的关键词。这些关键词距离首页仅一步之遥,小幅优化就能带来显著回报。用户可以通过自然语言提问:\n\n> "找出我排名在 5 到 20 位、展示超过 500 次的关键词。这些关键词在哪些页面上,需要做哪些优化才能进入首页?"\n\n3. 内容衰退诊断(Content Decay)\n\n内容衰退是指曾经表现良好的页面正在失去流量。及时发现并处理这些页面,可以防止进一步下滑。Claude 可以分析数据并回答:\n\n> "哪些页面相比上一周期失去了最多点击?重点关注之前至少有 50 次点击的页面。"\n\n4. CTR 问题修复\n\n高展示低 CTR 意味着标题标签和元描述不够吸引人,或者有 SERP 特性抢占了点击。通过分析,Claude 可以识别这些问题页面并建议改进方案:\n\n> "展示超过 10000 次但 CTR 低于 2% 的页面有哪些?每个页面的平均排名是多少?"\n\n5. 关键词蚕食检测(Cannibalisation)\n\n多个页面竞争同一个查询会分散排名信号。通过自定义 SQL 查询,可以发现这些冲突:\n\nsql\nSELECT query, COUNT(DISTINCT page) as pages, SUM(clicks) as clicks\nFROM search_analytics\nWHERE date >= '2025-01-01'\nGROUP BY query HAVING pages > 1\nORDER BY clicks DESC LIMIT 20\n\n\n6. 新机会发现\n\n识别本月新出现、上月未排名的查询,这些往往是新兴的内容机会:\n\n> "本月出现了哪些我上月未排名的新查询?哪些查询展示次数最多?"\n\n7. 设备与国家分析\n\n通过 device_breakdown 和 country_breakdown 洞察,可以比较桌面与移动端的 CTR 差异,发现移动体验问题,或识别有本地化机会的国家市场。\n\n8. 完整审计总结\n\n最强大的是让 Claude 基于完整数据给出综合建议:\n\n> "基于你在我的 Search Console 数据中看到的所有信息,给我列出本月应该优先处理的 5 件事,以提升自然流量。"\n\n自定义 SQL 查询能力\n\n对于高级用户,Better Search Console 提供了 query_gsc_data 工具,允许直接对 search_analytics 表执行任意 SELECT 查询。表结构包括:\n\n- date:日期(YYYY-MM-DD)\n- query:搜索查询\n- page:页面 URL\n- device:设备类型(DESKTOP、MOBILE、TABLET)\n- country:国家代码(ISO 3166-1 alpha-3)\n- clicks:点击次数\n- impressions:展示次数\n- ctr:点击率\n- position:平均排名\n\n这种开放的数据访问方式让用户可以构建完全自定义的分析逻辑,满足特定的业务需求。\n\n与 SEOgets 的对比\n\nBetter Search Console 与 SEOgets 代表了两种不同的 SEO 分析范式:\n\n| 特性 | Better Search Console | SEOgets |\n|------|----------------------|---------|\n| 价格 | 免费开源 | 49美元/月 |\n| 行数限制 | 无限制(完整分页) | 50,000 行 |\n| 数据存储 | 本地 SQLite,无限保留 | 云端托管 |\n| AI 分析 | Claude 直接查询数据并给出建议 | 无 LLM 集成 |\n| 自定义 SQL | 完全访问原始数据 | 不支持 |\n| 内容分组 | 无(可通过 Claude 按模式分组) | 支持,一键完成 |\n| 主题聚类 | 无(可让 Claude 聚类) | 支持,一键完成 |\n| 索引监控 | 不支持 | 支持,最多 5,000 页 |\n| 可分享报告 | 不支持 | 支持,客户门户 |\n| SEO 测试 | 不支持 | 内置支持 |\n| 多用户 | 不支持 | 支持,无限用户 |\n| 托管方式 | 自托管(你的机器) | 完全托管 |\n\n两者解决的问题不同:SEOgets 适合需要生产级仪表板、内容分组、主题聚类、索引监控和可分享客户门户的团队,尤其是向客户发送报告的代理机构;Better Search Console 则适合希望 Claude 直接审计网站并告诉具体修复方案的用户,数据完全在本地,完全免费。两者可以互补使用。\n\n部署与配置\n\n前提条件\n\n部署 Better Search Console 需要:\n\n1. 拥有 Google Cloud 服务账号并启用 Search Console API 访问\n2. 在 Google Search Console 中将服务账号添加为每个属性的用户(权限设为"完全")\n3. 安装 Node.js 和 npm\n\nClaude Desktop 配置\n\n在 Claude Desktop 配置文件中添加 MCP 服务器:\n\njson\n{\n \"mcpServers\": {\n \"better-search-console\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@houtini/better-search-console\"],\n \"env\": {\n \"GOOGLE_APPLICATION_CREDENTIALS\": \"/path/to/your-service-account.json\"\n }\n }\n }\n}\n\n\nClaude Code CLI 配置\n\nbash\nclaude mcp add \\\n -e GOOGLE_APPLICATION_CREDENTIALS=/path/to/your-service-account.json \\\n -s user \\\n better-search-console -- npx -y @houtini/better-search-console\n\n\n验证连接状态:claude mcp get better-search-console,应显示 "Status: Connected"。\n\n环境变量\n\n- GOOGLE_APPLICATION_CREDENTIALS(必需):服务账号 JSON 密钥文件路径\n- BSC_DATA_DIR(可选):SQLite 数据库存储位置,默认为 ~/seo-audits/better-search-console\n\n使用场景与最佳实践\n\n场景一:定期 SEO 健康检查\n\n每月运行一次完整审计,让 Claude 分析整体趋势、识别衰退内容、发现新机会。通过对比不同周期的数据,追踪优化效果。\n\n场景二:特定问题诊断\n\n当网站流量出现异常波动时,快速定位问题根源。是特定页面衰退?还是某些关键词排名下降?或者是 CTR 整体下滑?\n\n场景三:内容策略优化\n\n识别 striking distance 关键词,制定针对性的内容优化计划。发现关键词蚕食问题,整合或差异化竞争页面。\n\n场景四:技术 SEO 审计\n\n分析不同设备的 CTR 差异,发现移动体验问题。检查特定国家/地区的表现,评估国际化策略效果。\n\n局限性与注意事项\n\n尽管 Better Search Console 功能强大,但也存在一些局限:\n\n1. 需要 Claude Desktop 或 Claude Code:仪表板渲染需要支持 ext-apps 的 MCP 客户端,否则只能获得文本格式的回退响应\n2. 无多用户支持:目前仅支持单用户本地使用\n3. 无索引监控:无法追踪页面索引状态变化\n4. 无内置 SEO 测试功能:无法直接运行 SEO A/B 测试\n5. 大型网站初始同步较慢:1000 万行数据可能需要 5-10 分钟完成首次同步\n\n此外,使用过程中需要注意:\n\n- 服务账号需要在每个 Search Console 属性中单独授权\n- 定期运行 prune_database 清理过期数据,保持数据库性能\n- 敏感数据存储在本地,但仍需妥善保管服务账号密钥\n\n开源生态与社区贡献\n\nBetter Search Console 采用 Apache 2.0 许可证开源,代码托管在 GitHub 上。项目使用 TypeScript 开发,构建系统基于 npm 脚本。开发者可以通过以下命令参与贡献:\n\nbash\ngit clone https://github.com/houtini-ai/better-search-console.git\ncd better-search-console\nnpm install\nnpm run build\n\n\n项目欢迎社区贡献,包括功能增强、Bug 修复、文档改进等。开发命令包括:\n\n- npm run build:构建所有内容(服务器 + UI 包)\n- npm run build:server:仅编译 TypeScript\n- npm run build:ui:为所有三个 UI 视图构建 Vite\n- npm run dev:服务器 TypeScript 监视模式\n- npm start:运行编译后的服务器\n\n总结与展望\n\nBetter Search Console 代表了 SEO 工具演进的新方向:从被动的数据展示转向主动的智能分析,从受限的样本数据转向完整的原始数据访问,从固定的报表模板转向灵活的对话式交互。这种转变不仅提升了分析深度,也大大降低了专业 SEO 分析的技术门槛。\n\n对于希望充分利用 AI 能力优化网站搜索表现的用户来说,Better Search Console 提供了一个免费、开源、功能强大的解决方案。随着 MCP 生态的发展和 Claude 能力的不断增强,这类 AI 原生 SEO 工具有望成为行业标准实践。